code: def conv_lstm(x,
                kernel_size,
                filters,
                padding="SAME",
                dilation_rate=(1, 1),
                name=None,
                reuse=None):
    
    with tf.variable_scope(
        name, default_name="conv_lstm", values=[x], reuse=reuse):
      gates = conv(
          x,
          4 * filters,
          kernel_size,
          padding=padding,
          dilation_rate=dilation_rate)
      g = tf.split(layer_norm(gates, 4 * filters), 4, axis=3)
      new_cell = tf.sigmoid(g[0]) * x + tf.sigmoid(g[1]) * tf.tanh(g[3])
      return tf.sigmoid(g[2]) * tf.tanh(new_cell)
docs: Convolutional LSTM in 1 dimension.