Pytorch dataloader报错 RuntimeError: stack expects each tensor to be equal size, but got [4] at entry 0 and [5] at entry 1


参考 https://blog.csdn.net/dong_liuqi/article/details/109823874

这种情况下,你还能发现batch_size为1时是不会报错的,

batch_size为大于1会报错,报错的原因是同一batch中的entries的维数不一样

例如, batch = [[2,3,5, 1], [3,4,5,2,3]]

解决方案:

补齐,补成相同长度

# 把所有向量的长度都补为max_length
multi = np.pad(multi, (0, max_length-multi.shape[0]), 'constant', constant_values=(0, 0))

注意是在Dataset class的__get__item()方法中补齐

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM