我使用的是 tensorflow 默认自带的 LSTM 模型。我想检查或想知道如何在每个步骤中保存或显示遗忘门的值,以前有没有人这样做过或至少做过类似的事情?
直到现在我已经尝试使用 tf.print 但出现了很多值(甚至比我预期的更多)我会尝试使用 tensorboard 绘制一些东西但我认为这些门只是变量而不是我可以打印的额外层(也因为它们在 TF 脚本中)
任何帮助都会受到欢迎
最佳答案
如果您使用 tf.rnn_cell.BasicLSTMCell
,您要查找的变量的名称中将包含以下后缀:<parent_variable_scope>/BasicLSTMCell/Linear/Matrix
.这是所有四个门的级联矩阵。它的第一维匹配输入矩阵和状态矩阵(或准确地说是单元的输出)的第二维之和。第二个维度是单元格大小的4倍。
另一个互补变量是<parent_variable_scope>/BasicLSTMCell/Linear/Bias
这是一个与上述张量的第二维大小相同的向量(原因很明显)。
您可以使用 tf.split()
检索四个门的参数沿维度 1。拆分矩阵的顺序为 [input], [new input], [forget], [output]
.我指的是这里的代码形式 rnn_cell.py
.
请记住,变量表示 Cell 的参数,而不是各个门的输出。但是有了以上信息,如果您愿意,我相信您也能得到。
编辑:
添加了有关实际张量的更多具体信息 Matrix
和 Bias
关于python - Tensorflow:在 LSTM 中显示或保存遗忘门值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39168025/