class_docstr: Base class for the recurrent layers
  
  Parameters
  ----------
  n_units : int
      Number of hidden units in the layer.
  
  only_return_final : bool
      If ``True``, only return the final sequential output
      (e.g. for tasks where a single target value for the entire
      sequence is desired). In this case, Tensorfow makes an
      optimization which saves memory. Defaults to ``True``.
  
  {BaseLayer.name}
code: def get_output_shape(self, input_shape):
      input_shape = tf.TensorShape(input_shape)
      n_samples = input_shape[0]
  
      self.fail_if_shape_invalid(input_shape)
  
      if self.only_return_final:
          return tf.TensorShape((n_samples, self.n_units))
  
      n_time_steps = input_shape[1]
      return tf.TensorShape((n_samples, n_time_steps, self.n_units))
  
imports: import types
  import tensorflow
  from neupy import init
  from neupy.utils import tensorflow_session
  from neupy.exceptions import LayerConnectionError
  from neupy.core.properties import IntProperty, Property, NumberProperty, ParameterProperty
  from .base import BaseLayer
label_desc: Use image node_id 3 for calling the BaseRNNLayer obj's underlying member method code with example usage: obj.get_output_shape(input_shape) and returns: tf, tf