【pytorch基礎-error】RuntimeError: stack expects each tensor to be equal size


 

問題

File "/home/xxx/miniconda3/envs/open_mmlab/lib/python3.8/site-packages/torch/utils/data/_utils/collate.py", line 55, in default_collate
return torch.stack(batch, 0, out=out)
RuntimeError: stack expects each tensor to be equal size, but got [3, 867, 867] at entry 0 and [3, 740, 740] at entry 1

 

原因:

最后發現DataLoader輸入的數據集的大小必須是一致的,如果不一致需要使用 collate_fn選項處理成一致的;
最后發現還是增加的隨機裁剪的過程改變了數據的大小,不能保證最后是一致的;自以為某些地方沒有問題,沒有深入去理解實現過程以及最后的結果的性質,單個函數可能理解了,但是一系列串聯的數據操作(RandomResize、RandomCrop等)沒有聯系到一起,雖然單個操作可能會改變大小,但是串聯起來之后最后的結果肯定是一致的;
 
也就是,中間的處理過程可以是不一致的,但是最后進入DataLoader的數據必須是一致的;
這是因為torch.stack的實現過程決定的;因為stack要求 兩個輸入的shape完全相同;
 
參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM