Tensorflow:在LSTM中显示或保存忘记门值

时间:2016-08-26 13:54:13

标签: python neural-network tensorflow lstm

我正在使用张量流中默认出现的LSTM模型。我想检查或知道如何在每一步中保存或显示遗忘门的值,有没有人在此之前完成此操作或至少与此相似?

直到现在我已经尝试了tf.print但是出现了很多值(甚至比我期望的更多)我会尝试使用tensorboard绘制一些东西,但我认为那些门只是变量而不是我可以打印的额外层(也导致他们在TF脚本里面)

任何帮助都会受到欢迎

1 个答案:

答案 0 :(得分:2)

如果您使用的是tf.rnn_cell.BasicLSTMCell,则您要查找的变量的名称后缀为<parent_variable_scope>/BasicLSTMCell/Linear/Matrix。这是所有四个门的连接矩阵。它的第一个维度匹配输入矩阵和状态矩阵的第二维的总和(或者精确的单元的输出)。第二个维度是单元格大小的4倍。

另一个互补变量是<parent_variable_scope>/BasicLSTMCell/Linear/Bias,它是与上述张量的第二维相同大小的向量(出于显而易见的原因)。

您可以沿维度1使用tf.split()检索四个门的参数。分割矩阵的顺序为[input], [new input], [forget], [output]。我在这里的代码是rnn_cell.py

请记住,变量代表Cell的参数,而不是相应门的输出。但有了上述信息,我相信如果你愿意的话,你也可以得到它。

编辑:
添加了有关实际张量MatrixBias

的更多具体信息