<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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