您能否告诉我为什么LSTM单元的状态在验证和测试的每个批处理过程后都会更新?Tensorflow中的LSTM的单元状态
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_word_lm.py#L269
我假定LSTM细胞的状态应该是在验证和测试相同的值。
您能否告诉我为什么LSTM单元的状态在验证和测试的每个批处理过程后都会更新?Tensorflow中的LSTM的单元状态
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_word_lm.py#L269
我假定LSTM细胞的状态应该是在验证和测试相同的值。
不需要更新状态。这与数据如何馈送到网络有关。一个句子跨越多个批次。例如。假设我们有batch_size = 1和num_steps = 2,那么你需要一个句子“棕色狐狸跳”第一批b1 = ['the','brown'],然后是另一批b2 = ['fox','跳。张量流简单地做的就是将最终的隐藏状态作为b1的处理结果,并将其重新用作b2的初始状态,这使得完美的感觉是正确的?
换句话说,这与您是否在验证集上进行培训,测试或运行完全无关。此外,更新状态也与改变模型的参数无关。
cell_state的初始化值由您设置,通常我们使用零状态进行初始化。
然而,一旦你启动了一个进程,状态就会根据输入序列更新。您可以将状态视为“网络如何理解序列”。所以当网络以不同的顺序馈送时,细胞状态是不同的。