首页 文章

TensorFlow:在每个时间步打印RNN的内部状态

提问于
浏览
0

我正在使用 tf.nn.dynamic_rnn 类来创建LSTM . 我已经在一些数据上训练了这个模型,现在我想在每次提供输入的时候检查这个训练过的LSTM隐藏状态的值是什么 .

在SO和TensorFlow的GitHub页面上进行了一些挖掘之后,我看到有些人提到我应该编写自己的LSTM单元格,它返回我想要打印的任何内容,作为LSTM的 output 的一部分 . 然而,这对我来说似乎并不直接,因为隐藏状态和LSTM的输出不具有相同的形状 .

来自LSTM的输出张量具有形状 [16, 1] ,隐藏状态是形状 [16, 16] 的张量 . 连接它们会导致形状的张量 [16, 17] . 当我试图返回它时,我得到一个错误,说某些TensorFlow操作需要一个形状张量 [16,1] .

有谁知道更容易解决这种情况?我想知道是否可以使用 tf.Print 来打印所需的张量 .

1 回答

  • 0

    好吧,问题是我正在修改输出但没有更新LSTM本身的 output_size . 因此错误 . 它现在完美无缺 . 但是,我仍然觉得这种方法非常烦人 . 不接受我自己的答案,希望有人能有更清洁的解决方案 .

相关问题