Pytorch的Dataloader报错:TypeError: batch must contain tensors, numbers, dicts or lists

本文详细解析了PyTorch中DataLoader报错TypeError的原因,指出问题在于dataset未使用transform将PIL Image转换为Tensor。作者分享了如何正确设置dataloader以避免此错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

具体报错:

TypeError: batch must contain tensors, numbers, dicts or lists; found <class ‘PIL.Image.Image’>
1
2
loader的代码:

dataloader=torch.utils.data.DataLoader(dataset,batch_size=1,shuffle=True)
1
表面上看这个代码没有问题,实际上问题出在了dataloader机制的要求上,dataloader要求接收的是一个tensor,而我的dataset没有做transform,所以dataset的getitem函数返回的是一个PIL的Image对象,所以就会报错

作者:GZKPeng
来源:优快云
原文:https://blog.youkuaiyun.com/zkp_987/article/details/81078923
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值