'Initial state for this cell.
Parameters
batch_size: int
Only required for `NDArray` API. Size of the batch (\'N\' in layout).
Dimension of the input.
func : callable, default `symbol.zeros`
Function for creating initial state.
For Symbol API, func can be `symbol.zeros`, `symbol.uniform`,
`symbol.var` etc. Use `symbol.var` if you want to directly
feed input as states.
For NDArray API, func can be `ndarray.zeros`, `ndarray.ones`, etc.
**kwargs :
Additional keyword arguments passed to func. For example
`mean`, `std`, `dtype`, etc.
Returns
states : nested list of Symbol
Starting states for the first RNN step.'

def begin_state(self, batch_size=0, func=ndarray.zeros, **kwargs):

    states = []
    for (i, info) in enumerate(self.state_info(batch_size)):
        if (info is not None):
            info.update(kwargs)
        else:
            info = kwargs
        states.append(func(name=('%sh0_%d' % (self.prefix, i)), **info))
    return states
