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

在这里插入图片描述

首先,遇到的错误是:ValueError:Expected more than 1 value per channel when training…

解决方式:

1、复制问题,百度。

在博客上找到了很多的相关处理方式,大部分都是认为这是一个训练和测试时通道不一致的问题。但是,我仔细检查了我的网络构造,我觉得在这个方面好像没啥问题。

2、带着疑问,继续百度。

最后,终于发现了问题所在——“在网络训练过程中,我们的batchsize(例如3)的设置,会将数据集(例如10)平均分开。但如若数据集的总数量,不能整除batchsize,那么就会将剩下的数据集归为一类(分类为:3,3,3,1。)。此时,问题来了,我们第四类中的1就会产生该错误。

3、处理方式

处理方式有两种:

  1. 删除该数据集中的多出的数据(如:将前面例子数据集的数量从10,减少为9.此时可以均分数据)————不推荐,因为不能随意减少数据集的数量
  2. 修改batchsize的数值,使它最好能被数据集整除,总之不能使其余数为1(如:10%3=1 ×)
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于在训练模型时,输入的数据维度不符合预期导致的。根据引用\[1\]和引用\[2\]的信息,这个错误通常是由于在测试模型之前没有使用model.eval()函数来将模型设置为评估模式。在评估模式下,模型的权重不会被更新,从而避免了这个错误。所以解决办法是在测试模型之前加上model.eval()函数。 另外,根据引用\[3\]的信息,如果你的batch_size的值是大于1的,但仍然出现这个错误,可能是因为数据集的总数除以batch_size的值不能整除,而余下的数据只有一个。你可以在dataloader中将drop_last参数设置为True,这样dataloader就会舍去批次中多余的部分,从而解决这个问题。 综上所述,解决这个错误的方法是在测试模型之前使用model.eval()函数,并且如果需要,将dataloader中的drop_last参数设置为True。 #### 引用[.reference_title] - *1* *3* [ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1,](https://blog.csdn.net/weixin_47725177/article/details/128460187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 8,..](https://blog.csdn.net/ansheng1314/article/details/120528299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值