RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 3 and 2 ...

博客内容涉及在使用PyTorch训练模型时遇到的图像尺寸问题。问题一是transforms模块在调整图像尺寸时应使用正确的参数,例如对于Resnet模型,尺寸应为[224, 224]。问题二是数据集中图像通道不统一,存在RGB和灰度图像混杂的情况,解决方案是在加载图像时统一转换为RGB格式。通过修正这两个问题,可以避免RuntimeError并确保模型输入的正确性。

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

两种可能:

一:transforms没有把数据集中的图片转换成想要的尺寸大小,如Resnet等网络输入需要224x224大小的图像,在Resize时,不能用 transforms.Resize(224),而因该用transforms.Resize([224, 224]),官方文档有函数解释

二. 可能是因为自己的数据集中既有RGB图像也有灰度图像,通道不统一

参考https://discuss.pytorch.org/t/runtimeerror-invalid-argument-0-sizes-of-tensors-must-match-except-in-dimension-0-got-3-and-2-in-dimension-1/23890

可以通过以下方法解决:

在__getitem__() 方法中添加 image= Image.open(image).convert('RGB')


我这里是第一种问题,把size改成源码要求的大小就可以了

链接:https://www.jianshu.com/p/9e866d02ddbd
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值