2016-09-16 569 views
2

我正面临着一个非常奇怪的问题,我正在使用tensorflow构建RNN模型,然后在完成训练后使用tf.Saver存储模型变量(全部)。Tensorflow - 任何输入都会给出相同的输出

在测试过程中,我只是再次构建推理部分并将变量恢复到图形。恢复部分不会给出任何错误。

但是当我开始测试评估测试时,我总是从推理得到相同的输出,即对于所有测试输入,我得到相同的输出。

我在训练过程中输出了输出,我确实看到不同的训练样本的输出不同,成本也在下降。 但是当我进行测试时,无论输入是什么,总会给出相同的输出。

有人可以帮助我理解为什么会发生这种情况吗?我想发布一些最小的例子,但由于我没有收到任何错误,我不知道我应该在这里发布什么。如果能够帮助解决问题,我会很乐意分享更多信息。

我在训练和测试期间推理图之间存在的一个区别是RNN中的时间步数。在训练过程中,为了测试,在更新梯度之前,我会训练n个步骤(n = 20或更多),以便进行测试。我只使用一个步骤,因为我只想预测该输入。

感谢

回答

2

我已经能够解决此问题。这似乎正在发生,因为我的输入特征之一是其原始值非常占优势,因为在某些操作之后,所有的值都收敛到单一数值。 缩放该功能有助于解决此问题。

谢谢

+0

嗨,我有同样的问题,不同的输入收敛在相同的输出。我不知道为什么。你能告诉我缩放比例吗? –