class_docstr: Simple recurrent neural network.
  
  Parameters
  ----------
  n_epochs : int, default = 100
      the number of epochs to train the model
  batch_size : int, default = 1
      the number of samples per gradient update.
  units : int, default = 6
      number of units in the network
  callbacks : list of tf.keras.callbacks.Callback objects, default = None
  add_default_callback : bool, default = True
      whether to add default callback
  random_state : int or None, default=0
      Seed for random number generation.
  verbose : boolean, default = False
      whether to output extra information
  loss : string, default="mean_squared_error"
      fit parameter for the keras model
  metrics : list of strings, default=["accuracy"]
      metrics to use in fitting the neural network
  activation : string or a tf callable, default="linear"
      Activation function used in the output layer.
      List of available activation functions: https://keras.io/api/layers/activations/
  use_bias : boolean, default = True
      whether the layer uses a bias vector.
  optimizer : keras.optimizers object, default = RMSprop(lr=0.001)
      specify the optimizer and the learning rate to be used.
  
  References
  ----------
  ..[1] benchmark forecaster in M4 forecasting competition:
  https://github.com/Mcompetitions/M4-methods
docstr: Construct a compiled, un-trained, keras model that is ready for training.
  
  Parameters
  ----------
  input_shape : tuple
      The shape of the data fed into the input layer, should be (m,d)
  
  Returns
  -------
  output : a compiled Keras Model
code: def build_model(self, input_shape, **kwargs):
      """Construct a compiled, un-trained, keras model that is ready for training.
  
      Parameters
      ----------
      input_shape : tuple
          The shape of the data fed into the input layer, should be (m,d)
  
      Returns
      -------
      output : a compiled Keras Model
      """
      import tensorflow as tf
      from tensorflow import keras
  
      tf.random.set_seed(self.random_state)
  
      metrics = (
          self.metrics if self.metrics is not None else ["accuracy"]
      )
      input_layer, output_layer = self._network.build_network(
          input_shape, **kwargs
      )
      output_layer = keras.layers.Dense(
          units=1,
          activation=self.activation,
          use_bias=self.use_bias,
      )(output_layer)
  
      self.optimizer_ = (
          keras.optimizers.RMSprop(lr=0.001)
          if self.optimizer is None
          else self.optimizer
      )
      model = keras.models.Model(
          inputs=input_layer, outputs=output_layer
      )
      model.compile(
          loss=self.loss, optimizer=self.optimizer_, metrics=metrics
      )
      return model
  
file_path: sktime/sktime/regression/deep_learning/rnn.py
imports: from copy import deepcopy
  from sklearn.utils import check_random_state
  from sktime.networks.rnn import RNNNetwork
  from sktime.regression.deep_learning.base import BaseDeepRegressor
  from sktime.utils.validation._dependencies import _check_dl_dependencies
  from sktime.utils.warnings import warn
label_desc: Use image node_id 2 for calling the SimpleRNNRegressor obj's underlying member method code with example usage: obj.build_model(input_shape) and returns: model