import tensorflow as tf

    if proposal_type == "smoothing":
      assert rev_rnn_cell, "Must provide rev_rnn_cell for smoothing proposal."

  def zero_state(self, batch_size, dtype):
    super_state = super(TrainableVRNN, self).zero_state(batch_size, dtype)
    return TrainableVRNNState(
        rnn_out=tf.zeros([batch_size, self.rnn_cell.output_size], dtype=dtype),
        **super_state._asdict())

  def set_observations(self, observations, seq_lengths):
    """Stores the model's observations.

