如何将rnn的初始状态设置为tensorflow中的参数?
How to set initial state of rnn as parameter in tensorflow?
当使用dynamic_rnn
时,需要一个名为initial_state
的参数。一个简单的解决方案是
initial_state = lstm_cell.zero_state(batch_size, tf.float32)
但是我想把初始状态设置为可以优化的参数,怎么办?
我可以定义两个trainable_variables叫h0
和c0
,这是两个向量。但是 dynamic_rnn
需要两个矩阵,其中第一个维度是 batch_size
。如何将向量 h0
扩展为每行为 h0
的矩阵?
如果你这样做了会怎样?
initial_state_vector = tf.get_variable('initial_state_vector', [1, state_size])
initial_state = tf.tile(initial_state_vector, batch_size)
然后您可以将 initial_state
变量提供给 LSTM,它将是合适的大小。
当使用dynamic_rnn
时,需要一个名为initial_state
的参数。一个简单的解决方案是
initial_state = lstm_cell.zero_state(batch_size, tf.float32)
但是我想把初始状态设置为可以优化的参数,怎么办?
我可以定义两个trainable_variables叫h0
和c0
,这是两个向量。但是 dynamic_rnn
需要两个矩阵,其中第一个维度是 batch_size
。如何将向量 h0
扩展为每行为 h0
的矩阵?
如果你这样做了会怎样?
initial_state_vector = tf.get_variable('initial_state_vector', [1, state_size])
initial_state = tf.tile(initial_state_vector, batch_size)
然后您可以将 initial_state
变量提供给 LSTM,它将是合适的大小。