如何在张量流中将rnn的初始状态设置为参数?

时间:2016-10-21 03:27:26

标签: tensorflow recurrent-neural-network

当使用dynamic_rnn时,需要一个名为initial_state的参数。一个简单的解决方案是

initial_state = lstm_cell.zero_state(batch_size, tf.float32)

但我想将初始状态设置为可以优化的参数,我该怎么办?

我可以定义两个名为h0c0的trainable_variables,它们是两个向量。但dynamic_rnn需要两个矩阵,其中第一个维度为batch_size。如何将向量h0展开为每行为h0的矩阵?

1 个答案:

答案 0 :(得分:3)

如果你这样做会怎么样?

initial_state_vector = tf.get_variable('initial_state_vector', [1, state_size])
initial_state = tf.tile(initial_state_vector, batch_size)

然后你可以将initial_state变量提供给LSTM,它的大小合适。