【发布时间】:2017-07-19 13:15:26
【问题描述】:
最近,我一直在尝试复制 this post 的结果,但使用的是 TensorFlow 而不是 Keras。但是,我的模型损失没有收敛为in the code provided。我注意使用作者使用的相同参数,即使是那些未明确显示的参数。我的完整代码可见here。
我已经尝试了不同的学习率、优化器和批量大小,但这些对结果也没有太大影响。
我在 StackOverflow 和 StackExchange 中发现了许多与此问题相关的其他问题,但其中大多数根本没有答案。然而,带有答案的问题并没有帮助。
我正在使用 TensorFlow 1.1.0、Python 3.6 和 Windows 10。
最奇怪的是我们有相同的数据库和相同的模型,只是不同的框架。因此,它不应该给出完全不同的行为。请问有人对我应该如何解决这个问题有建议吗?
【问题讨论】:
-
简短评论:您应该在测试期间使用“
is_training”来禁用辍学。此外,您的网络似乎总是输出零,因此梯度毫无价值。您是否尝试过禁用 dropout? -
为什么你的损失均方误差和为什么 tanh 是你称之为“logits”的东西的激活?
-
你说得对,@JonasAdler,我没有使用 dropout,因为“is_training”默认值为 False,所以我的输出没有受到影响。我现在尝试将其设置为 true,但问题仍然存在。
-
@RyanStout,我使用的模型、损失和优化器与我提到的the post 完全相同。我也担心 tanh 正在消失渐变,但奇怪的是它在 Tensorflow 中不起作用。
-
人们在进行二元分类时经常使用交叉熵误差,但这也可以。
标签: python python-3.x tensorflow keras