class_docstr: Establish the network structure for a MLP.
  
  Adapted from the implementation used in [1]
  
  Parameters
  ----------
  random_state    : int, default = 0
      seed to any needed random actions
  
  Notes
  -----
  Adapted from the implementation from source code
  https://github.com/hfawaz/dl-4-tsc/blob/master/classifiers/mlp.py
  
  References
  ----------
  .. [1]  Network originally defined in:
  @inproceedings{wang2017time, title={Time series classification from
  scratch with deep neural networks: A strong baseline}, author={Wang,
  Zhiguang and Yan, Weizhong and Oates, Tim}, booktitle={2017
  International joint conference on neural networks (IJCNN)}, pages={
  1578--1585}, year={2017}, organization={IEEE} }
class_docstr_tok: ["Establish","the","network","structure","for","a","MLP",".","Adapted","from","the","implementation","used","in","[","1","]","Parameters","--","--","--","--","--","random_state",":","int",",","default","=","0","seed","to","any","needed","random","actions","Notes","--","--","-","Adapted","from","the","implementation","from","source","code","https",":","\/\/github.com\/hfawaz\/dl-4-tsc\/blob\/master\/classifiers\/mlp.py","References","--","--","--","--","--","..","[","1","]","Network","originally","defined","in",":","@","inproceedings","{","wang2017time",",","title=","{","Time","series","classification","from","scratch","with","deep","neural","networks",":","A","strong","baseline","}",",","author=","{","Wang",",","Zhiguang","and","Yan",",","Weizhong","and","Oates",",","Tim","}",",","booktitle=","{","2017","International","joint","conference","on","neural","networks","(","IJCNN",")","}",",","pages=","{","1578","--","1585","}",",","year=","{","2017","}",",","organization=","{","IEEE","}","}"]
docstr: Construct a network and return its input and output layers.
  
  Arguments
  ---------
  input_shape : tuple of shape = (series_length (m), n_dimensions (d))
      The shape of the data fed into the input layer
  
  Returns
  -------
  input_layer : a keras layer
  output_layer : a keras layer
docstr_tok: ["Construct","a","network","and","return","its","input","and","output","layers",".","Arguments","--","--","--","--","-","input_shape",":","tuple","of","shape","=","(","series_length","(","m",")",",","n_dimensions","(","d",")",")","The","shape","of","the","data","fed","into","the","input","layer","Returns","--","--","--","-","input_layer",":","a","keras","layer","output_layer",":","a","keras","layer"]
code: def build_network(self, input_shape, **kwargs):
      """Construct a network and return its input and output layers.
  
      Arguments
      ---------
      input_shape : tuple of shape = (series_length (m), n_dimensions (d))
          The shape of the data fed into the input layer
  
      Returns
      -------
      input_layer : a keras layer
      output_layer : a keras layer
      """
      from tensorflow import keras
  
      # flattened because multivariate should be on same axis
      input_layer = keras.layers.Input(input_shape)
      input_layer_flattened = keras.layers.Flatten()(input_layer)
  
      layer_1 = keras.layers.Dropout(0.1)(input_layer_flattened)
      layer_1 = keras.layers.Dense(500, activation="relu")(layer_1)
  
      layer_2 = keras.layers.Dropout(0.2)(layer_1)
      layer_2 = keras.layers.Dense(500, activation="relu")(layer_2)
  
      layer_3 = keras.layers.Dropout(0.2)(layer_2)
      layer_3 = keras.layers.Dense(500, activation="relu")(layer_3)
  
      output_layer = keras.layers.Dropout(0.3)(layer_3)
  
      return input_layer, output_layer
  
imports: from sktime.networks.base import BaseDeepNetwork
  from sktime.utils.validation._dependencies import _check_dl_dependencies
label_desc: Use image node_id 2 for calling the MLPNetwork obj's underlying member method code with example usage: obj.build_network(input_shape) and returns: input_layer,  output_layer