我在尝试使用Tensorflow设置一个多层感知器神经网络来预测时间序列的下一个值时遇到了困难。
我从文件中读取时间序列,将其分成三个数组,并使用这些数组来训练、测试和验证网络。不幸的是,我的网络对每一个输入都回答0.9999。
下图显示了我期望网络输出的值,请注意这些值的范围是从2.8到4.2
现在,这些是我网络预测的值。虽然它们看起来都一样,但实际上是0.9999…(在第九位小数处有一些差异)。
我也尝试了不同的成本函数,但没有效果。我知道我可能遗漏了一些非常愚蠢的东西,所以我非常感谢您的帮助。
谢谢您。
回答:
从你的代码来看:
out_layer = tf.nn.tanh(out_layer)
tanh
只能输出在(-1.0, 1.0)之间的值,移除这行代码会让它表现得更好。