ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 2048

在多块GPU上训练模型时,出现如下错误:
在这里插入图片描述
看很多博客说是:
模型使用了batchnomolization,batchnorm层需要大于一个样本去计算其中的参数,训练中用batch训练的时候当前batch恰好只含一个sample,而由于BatchNorm操作需要多于一个数据计算平均值,因此造成该错误。解决方法是将dataloader的一个丢弃参数设置为true。
在这里插入图片描述于是查看我的训练batch_size=16,
训练集样本:7058
验证集样本:1000
测试集样本:2015
计算了一下均没有剩下一个样本的情况,而且我的数据读入也不是通过DataLoader,保险起见,试了下将数据集的样本数都改为16的倍数,于是便可以运行了。

引用博客:
https://blog.csdn.net/weixin_44790486/article/details/106641833
https://www.cnblogs.com/zmbreathing/p/pyTorch_BN_error.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值