code: def basic_lstm(inputs, state, num_units, name=None):
    
    input_shape = common_layers.shape_list(inputs)
    # reuse parameters across time-steps.
    cell = tf.nn.rnn_cell.BasicLSTMCell(
        num_units, name=name, reuse=tf.AUTO_REUSE)
    if state is None:
      state = cell.zero_state(input_shape[0], tf.float32)
    outputs, new_state = cell(inputs, state)
    return outputs, new_state
docs: Basic LSTM.