如何将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叫h0c0,这是两个向量。但是 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,它将是合适的大小。