用于回归的tensorflow深层神经网络总是可以在一批中预测相同的结果

用于回归的tensorflow深层神经网络总是可以在一批中预测相同的结果,第1张

用于回归的tensorflow深层神经网络总是可以在一批中预测相同的结果

简短答案

移调您

pred
使用向量
tf.transpose(pred)

更长的答案

问题在于

pred
(预测)和
y
(标签)的形状不同:一个是行向量,另一个是列向量。显然,当对它们应用按元素进行 *** 作时,将得到一个矩阵,这不是您想要的。

解决方案是使用来转置预测向量,

tf.transpose()
以获得适当的向量,从而获得适当的损失函数。实际上,如果在示例中将批处理大小设置为1,则即使没有修复,它也会起作用,因为转置1x1向量是无 *** 作的。

我将此修复程序应用于您的示例代码,并观察到以下行为。修复之前:

Epoch: 0245 cost= 84.743440580[*]----------------------------label value: 23 estimated value: [ 27.47437096]label value: 50 estimated value: [ 24.71126747]label value: 22 estimated value: [ 23.87785912]

并在同一时间点修复后:

Epoch: 0245 cost= 4.181439120[*]----------------------------label value: 23 estimated value: [ 21.64333534]label value: 50 estimated value: [ 48.76105118]label value: 22 estimated value: [ 24.27996063]

您会看到成本要低得多,并且实际上它正确地获知了值50。您必须对学习率进行一些微调,以提高您的学习成绩。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存