def step(self, time, inputs, state, name=None):
    """Called per step of decoding (but only once for dynamic decoding).

    Args:
      time: Scalar `int32` tensor. Current step number.
      inputs: RNNCell input (possibly nested tuple of) tensor[s] for this time
        step.
      state: RNNCell state (possibly nested tuple of) tensor[s] from previous
        time step.
      name: Name scope for any created operations.

    Returns:
      `(outputs, next_state, next_inputs, finished)`: `outputs` is an instance
      of BasicDecoderOutput, `next_state` is a (structure of) state tensors and
      TensorArrays, `next_inputs` is the tensor that should be used as input for
      the next step, `finished` is a boolean tensor telling whether the sequence
      is complete, for each sequence in the batch.
    """
    raise NotImplementedError