def forward(self, inputs, states=None): 
batch_size = inputs.shape[self._batch_axis]<EOL>skip_states = states is None<EOL>if skip_states:<EOL><INDENT>states = self.cell.begin_state(batch_size, ctx=inputs.context)<EOL><DEDENT>if isinstance(states, ndarray.NDArray):<EOL><INDENT>states = [states]<EOL><DEDENT>for state, info in zip(states, self.cell.state_info(batch_size)):<EOL><INDENT>if state.shape != info['<STR_LIT>']:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>'%(<EOL>str(info['<STR_LIT>']), str(state.shape)))<EOL><DEDENT><DEDENT>states = sum(zip(*((j for j in i) for i in states)), ())<EOL>outputs, states = self.cell.unroll(<EOL>inputs.shape[self._axis], inputs, states,<EOL>layout=self._layout, merge_outputs=True)<EOL>if skip_states:<EOL><INDENT>return outputs<EOL><DEDENT>return outputs, states<EOL>
Defines the forward computation. Arguments can be either
        :py:class:`NDArray` or :py:class:`Symbol`.