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,got input size torch.size([])_第1张图片

首先,遇到的错误是: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 ×)

你可能感兴趣的:(python零散知识总结,#,代码运行时错误解决,tensorflow,pytorch,人工智能)