我正面临一个非常奇怪的问题,即我在使用张量流建立RNN模型,然后在完成训练后使用tf.Saver存储模型变量(全部)。
在测试期间,我只是再次构建推理部分并将变量恢复到图形中。修复部分不会出现任何错误。
但是当我开始测试评估测试时,我总是从推理中获得相同的输出,即对于所有测试输入,我得到相同的输出。
我在训练期间打印输出,我确实看到不同训练样本的输出不同,成本也在下降。 但是当我进行测试时,无论输入是什么,它总是给我相同的输出。
有人可以帮助我理解为什么会这样吗?我想发布一些最小的例子,但由于我没有收到任何错误,我不确定我应该在这里发布什么。如果可以帮助解决问题,我将很乐意分享更多信息。
训练和测试期间推理图之间的一个区别是RNN中的时间步数。在训练期间,我在更新渐变之前为一个批次训练n个步骤(n = 20或更多),而在测试时我只使用一个步骤,因为我只想预测该输入。
由于
答案 0 :(得分:2)
我已经能够解决这个问题了。这似乎正在发生,因为我的输入特征之一在其原始值中占主导地位,因此在一些操作之后所有值都收敛到单个数字。 扩展该功能有助于解决此问题。
由于
答案 1 :(得分:0)
你能创建一个可重复的小案例并将其作为错误发布到https://github.com/tensorflow/tensorflow/issues吗?这将有助于这个问题得到合适的人的关注。