def conv_lstm(x,
              kernel_size,
              filters,
              padding="SAME",
              dilation_rate=(1, 1),
              name=None,
              reuse=None):
  """Convolutional LSTM in 1 dimension."""
  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)
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 )
Convolutional LSTM in 1 dimension.