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()方法中补齐

 

posted @ 2021-10-29 10:15  Rogn  阅读(2540)  评论(0编辑  收藏  举报