首页 Paddle框架 帖子详情
训练看似没问题,但预测结果全是nan
收藏
快速回复
Paddle框架 问答深度学习 3638 6
训练看似没问题,但预测结果全是nan
收藏
快速回复
Paddle框架 问答深度学习 3638 6

训练结果如下图所示,loss和acc都看起来比较正常,loss也在下降,acc也在提升

训练完成保存模型后,将图片进行预测,分类结果却都为nan,如下图所示

请问各位是什么原因,项目地址 https://aistudio.baidu.com/aistudio/projectdetail/682170

0
收藏
回复
全部评论(6)
时间顺序
尹亦宇
#2 回复于2020-08

预测处理的肯定是个概率  你是否需要取最大值然后和label的字典进行映射呢

0
回复
geoyee
#3 回复于2020-08

是的,应该是5个数字表示这五类的概率,然后取最大的和label字典映射。但是这里输出的概率5个都是nan,然后查找最大并映射得到的结果永远是Rolls-Royce

0
回复
geoyee
#4 回复于2020-08
预测处理的肯定是个概率  你是否需要取最大值然后和label的字典进行映射呢

是的,应该是5个数字表示这五类的概率,然后取最大的和label字典映射。但是这里输出的概率5个都是nan,然后查找最大并映射得到的结果永远是Rolls-Royce

0
回复
geoyee
#5 回复于2020-08

用一个简单的网络试了一下可以正确训练和预测,应该是网络的问题,然后将网络中的batch_norm的动量使用默认,训练的结果就可以正确的得到了。但不知道为什么,batch_norm中的动量有什么用,为何影响预测结果均为nan

0
回复
thinc
#6 回复于2020-08
geoyee #5
用一个简单的网络试了一下可以正确训练和预测,应该是网络的问题,然后将网络中的batch_norm的动量使用默认,训练的结果就可以正确的得到了。但不知道为什么,batch_norm中的动量有什么用,为何影响预测结果均为nan
展开

batch_norm是把数据归一化了,你看下他的公式就知道了

0
回复
thinc
#7 回复于2020-08
geoyee #5
用一个简单的网络试了一下可以正确训练和预测,应该是网络的问题,然后将网络中的batch_norm的动量使用默认,训练的结果就可以正确的得到了。但不知道为什么,batch_norm中的动量有什么用,为何影响预测结果均为nan
展开

ohh看错了,我以为是batchnorm

动量可以理解成lambda,用来权衡均值和方差所占比重的,类似于如下公式

均值= λ×均值 + (1-λ)×batch均值

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户