docs: def initial_state(self, batch_size, dtype=tf.float32, trainable=False,
                      trainable_initializers=None, trainable_regularizers=None,
                      name=None):
      """Builds the default start state for a BidirectionalRNN.
  
      The Bidirectional RNN flattens the states of its forward and backward cores
      and concatentates them.
  
      Args:
        batch_size: An int, float or scalar Tensor representing the batch size.
        dtype: The data type to use for the state.
        trainable: Boolean that indicates whether to learn the initial state.
        trainable_initializers: An initializer function or nested structure of
            functions with same structure as the `state_size` property of the
            core, to be used as initializers of the initial state variable.
        trainable_regularizers: Optional regularizer function or nested structure
          of functions with the same structure as the `state_size` property of the
          core, to be used as regularizers of the initial state variable. A
          regularizer should be a function that takes a single `Tensor` as an
          input and returns a scalar `Tensor` output, e.g. the L1 and L2
          regularizers in `tf.contrib.layers`.
        name: Optional string used to prefix the initial state variable names, in
            the case of a trainable initial state. If not provided, defaults to
            the name of the module.
  
      Returns:
        Tuple of initial states from forward and backward RNNs.
      """
      name = "state" if name is None else name
      forward_initial_state = self._forward_core.initial_state(
          batch_size, dtype, trainable, trainable_initializers,
          trainable_regularizers, name=name+"_forward")
      backward_initial_state = self._backward_core.initial_state(
          batch_size, dtype, trainable, trainable_initializers,
          trainable_regularizers, name=name+"_backward")
      return forward_initial_state, backward_initial_state