這種錯誤有兩種可能: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便可。數據