我正在使用张量流中默认出现的LSTM模型。我想检查或知道如何在每一步中保存或显示遗忘门的值,有没有人在此之前完成此操作或至少与此相似?
直到现在我已经尝试了tf.print但是出现了很多值(甚至比我期望的更多)我会尝试使用tensorboard绘制一些东西,但我认为那些门只是变量而不是我可以打印的额外层(也导致他们在TF脚本里面)
任何帮助都会受到欢迎
答案 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的参数,而不是相应门的输出。但有了上述信息,我相信如果你愿意的话,你也可以得到它。
编辑:
添加了有关实际张量Matrix
和Bias