首先可以确定地是在数据读取的以及处理发生的问题。目前可以归纳为一下两种:

1:使用Image.open()没有添加.convert('RGB')

错误代码例子:

class Mydataset(data.Dataset):def __init__(self,root,labels,transform):super(Mydataset,self).__init__()self.imgs_path = rootself.labels = labelsself.transform = transformdef __getitem__(self,index):ig_path = self.imgs_path[index]label=self.labels[index]######################################pil_image = Image.open(ig_path)#########################################data = self.transform(pil_image)return data,labeldef __len__(self):return len(self.imgs_path)

正确代码例子:

class Mydataset(data.Dataset):def __init__(self,root,labels,transform):super(Mydataset,self).__init__()self.imgs_path = rootself.labels = labelsself.transform = transformdef __getitem__(self,index):ig_path = self.imgs_path[index]label=self.labels[index]######################################pil_image = Image.open(ig_path).convert('RGB')#########################################data = self.transform(pil_image)return data,labeldef __len__(self):return len(self.imgs_path)

2:transform过程中错误使用Resize功能

错误示范:

transform = transforms.Compose([transforms.Resize((224)),transforms.ToTensor()
])

正确代码:

train_dataset = datasets.ImageFolder(train_data,transforms.Compose([transforms.Resize((224,224))

验证方法:

path_load = glob.glob(r'D:\BaiduNetdiskDownload\pytorch_learning\dataset\dataset2\*.jpg')
#图片路径
transform = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor()
])all_labels=[]
species = ['cloudy', 'rain', 'shine', 'sunrise']
#图片类别
for img in path_load:for i,c in enumerate(species):if c in img:all_labels.append(i)
#图片标签
species_to_idx = dict((c, i) for i, c in enumerate(species))
label_to_class =  dict((v,k) for k,v in species_to_idx.items())
class Mydataset(data.Dataset):def __init__(self,root,labels,transform):super(Mydataset,self).__init__()self.imgs_path = rootself.labels = labelsself.transform = transformdef __getitem__(self,index):ig_path = self.imgs_path[index]label=self.labels[index]pil_image = Image.open(ig_path).convert('RGB')data = self.transform(pil_image)return data,labeldef __len__(self):return len(self.imgs_path)wheather_dataset = Mydataset(path_load,all_labels,transform)
wheather_dl = data.DataLoader(wheather_dataset,batch_size=16,shuffle=True,drop_last=True)plt.figure(figsize=(12,8))
imgs_batch,labels_batch=next(iter(wheather_dl))
for i,(img,label) in enumerate(zip(imgs_batch,labels_batch)):img = img.permute(1,2,0).numpy()plt.subplot(4,4,i+1)plt.title(label_to_class.get(label.item()))plt.imshow(img)

result:

stack expects each tensor to be equal size, but got [3, 224, 224] at entry 0 and [1,224,224] at entr相关推荐

  1. stack expects each tensor to be equal size, but got [3, 40, 160] at entry 0 and [4, 40, 160] at entr

    这个问题是通道数不一样导致的,本质上是图像的问题 加载图像时加上.convert('RGB')即可 data = Image.open(imgPath).convert('RGB')

  2. DataLoader问题解决:RuntimeError: stack expects each tensor to be equal size, but got [3, 200, 200]entry1

    最近,在数据集处理并载入DataLoader进行训练的时候出现了问题: RuntimeError: stack expects each tensor to be equal size, but go ...

  3. RuntimeError: stack expects each tensor to be equal size, but got xxx at entry 0 at entry 1

    今日做模型训练,Pytorch在加载数据时遇到如下错误: Epoch 1/800: 31%|███ | 4/13 [00:03<00:07, 1.27img/s, loss (batch)=1. ...

  4. RuntimeError: stack expects each tensor to be equal size

    在调试densenet进行分类任务的代码时,在图像预处理的过程中遇到下列错误: RuntimeError: stack expects each tensor to be equal size, bu ...

  5. RuntimeError: stack expects each tensor to be equal size, but got [8] at entry 0 and [2] at entry 2

      最近在调试pytorch代码的时候遇到如下问题,由于他报错的地方不是在我们自己写的代码,而是在pytorch的包里,所以一开始就一头雾水.   在查阅了资料以后http://www.zzvips. ...

  6. RuntimeError: each element in list of batch should be of equal size

    RuntimeError: each element in list of batch should be of equal size 示例代码: import os import re from t ...

  7. 解决RuntimeError: stack expects a non-empty Tensorlist问题

    在batch_size时,可能某些地方需要batch>1的时候才能运行,但在创建dataloader时,可能最后一个batch的大小正好为1,所以会导致这种错误. 为了解决这种情况,将datal ...

  8. Cityscapse 数据集使用 + 训练 STDC踩坑

    官网地址:Cityscapes Dataset – Semantic Understanding of Urban Street Scenes (cityscapes-dataset.com) get ...

  9. 初学者之蚂蚁蜜蜂分类报错记录

    听了bilibil小土堆的课,拿蚂蚁蜜蜂数据集练手,记录下自己犯的错~ 1.trans = transform.Compose() # 这段报错了-- #图片转为tensor 修改维度 trans = ...

最新文章

  1. 白话Elasticsearch72_利用HDFS备份与恢复ES生产集群的数据
  2. 创建一个catkin工作空间
  3. Python - Excel文件与CSV文件相互转化
  4. Java虚拟机专题对象内存定位
  5. was进程内存占用过大_Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决...
  6. BizTalk database lookup funcatoid DbConnectionString 设定问题有解了
  7. Prescan(一):无人驾驶仿真软件简介
  8. 音创点歌机_音创ktv点歌系统
  9. Python之pandas学习笔记
  10. 有关XLS文件的读取
  11. 首席新媒体运营商学院黎想:裂变活动要避免40个坑!
  12. 哈工大2022年春季学期计算机系统大作业——程序人生
  13. ubuntu开机报错/dev/nume0n1p2:clean解决方案
  14. MySQL备库复制延迟的原因及解决办法
  15. API文档工具knife4j使用详解
  16. YOLOV5训练数据出现:no labels found(2个方法解决)
  17. 分析大量壹米滴答物流揽收后是否有物流的实例步骤
  18. 可编程计算机边长计算器,可编程科学计算器(Scientific Calculator Plus)
  19. 岁末寒冬,我的2019年终总结
  20. Android全屏显示隐藏状态栏

热门文章

  1. 苹果电脑Mac-M1-芯片已经支持适配-PS-,2021安装 M1芯片处理器安装PS2021 完美版
  2. 搭建自己的邮件服务器(postfix devocot cyrus-sasl) centos7 系统下配置
  3. 每日一题198—划分字母区间
  4. Github 开源代码
  5. 优酷轮播代理源地址和PHP,优酷顶部轮播图部分布局 2019.0314-20点
  6. 【无标题】云计算第一天笔记
  7. mysql分组排序取第一条记录
  8. 【ORACLE】dmp格式导入导出,表没有数据的情况下,该表导入会缺失
  9. [单片机框架][AT指令框架][从机版] 高内聚 低耦合
  10. JS分布式流转基础学习