这种错误有两种可能:spa
1.你输入的图像数据的维度不彻底是同样的,好比是训练的数据有100组,其中99组是256*256,但有一组是384*384,这样会致使Pytorch的检查程序报错
2.比较隐晦的batchsize的问题,Pytorch中检查你训练维度正确是按照每一个batchsize的维度来检查的,好比你有1000组数据(假设每组数据为三通道256px*256px的图像),batchsize为4,那么每次训练则提取(4,3,256,256)维度的张量来训练,恰好250个epoch解决(250*4=1000)。可是若是你有999组数据,你继续使用batchsize为4的话,这样999和4并不能整除,你在训练前249组时的张量维度都为(4,3,256,256)可是最后一个批次的维度为(3,3,256,256),Pytorch检查到(4,3,256,256) != (3,3,256,256),维度不匹配,天然就会报错了,这能够称为一个小bug。
class
解决办法:bug
对于第一种:整理一下你的数据集保证每一个图像的维度和通道数都一直便可。程序
对于第二种:挑选一个能够被数据集个数整除的batchsize或者直接把batchsize设置为1便可。数据