'Initial state for this cell.
Parameters
func : callable, default symbol.zeros
Function for creating initial state. Can be symbol.zeros,
symbol.uniform, symbol.Variable etc.
Use symbol.Variable if you want to directly
feed input as states.
**kwargs :
more 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, func=symbol.zeros, **kwargs):

    assert (not self._modified), 'After    applying    modifier    cells    (e.g.    DropoutCell)    the    base    cell    cannot    be    called    directly.    Call    the    modifier    cell    instead.'
    states = []
    for info in self.state_info:
        self._init_counter += 1
        if (info is None):
            state = func(name=('%sbegin_state_%d' % (self._prefix, self._init_counter)), **kwargs)
        else:
            kwargs.update(info)
            state = func(name=('%sbegin_state_%d' % (self._prefix, self._init_counter)), **kwargs)
        states.append(state)
    return states
