code: def add_time_dimension(padded_inputs, seq_lens):
      
  
      # Sequence lengths have to be specified for LSTM batch inputs. The
      # input batch must be padded to the max seq length given here. That is,
      # batch_size == len(seq_lens) * max(seq_lens)
      padded_batch_size = tf.shape(padded_inputs)[0]
      max_seq_len = padded_batch_size // tf.shape(seq_lens)[0]
  
      # Dynamically reshape the padded batch to introduce a time dimension.
      new_batch_size = padded_batch_size // max_seq_len
      new_shape = ([new_batch_size, max_seq_len] +
                   padded_inputs.get_shape().as_list()[1:])
      return tf.reshape(padded_inputs, new_shape)
docs: Adds a time dimension to padded inputs.
  
      Arguments:
          padded_inputs (Tensor): a padded batch of sequences. That is,
              for seq_lens=[1, 2, 2], then inputs=[A, *, B, B, C, C], where
              A, B, C are sequence elements and * denotes padding.
          seq_lens (Tensor): the sequence lengths within the input batch,
              suitable for passing to tf.nn.dynamic_rnn().
  
      Returns:
          Reshaped tensor of shape [NUM_SEQUENCES, MAX_SEQ_LEN, ...].