神经网络输出Nan

在训练ResNet模型时,设置epoch=100,batchsize=128,发现在第一个epoch的后期输出变为nan。尝试降低学习率无效。发现nan的位置随机,但关闭DataLoader的shuffle后,nan出现位置固定。检测到input中存在nan,删除含nan的数据片段后训练恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:设置的epoch=100,batchsize=128

网络是resnet,输入输出一维信号

在第一个epoch,前几个输出都正常值,后面开始全是nan

解决办法(顺序不是步骤,是挨个尝试的):

  1. 降低学习率,我降了,没用

  1. 我发现出现nan的地方尽管都在第一个epoch里,但是每次训练出具体地方不一样。猜测是label或者input有问题,但是如果是这样的话应该是在某一个点处出现nan。发现是DataLoader里shuffle=true,我把它改成了false

  1. 此时,总是固定的地方出现nan。我用了一个判断

res=torch.isnan(inputs).any()

print(res)

True就是有nan,反之没有

  1. 找到了发现input存在nan, 我也不知道为啥存在,我直接把这一小块input删了,反正几万个数据不差这一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值