当前位置: 首页 > news >正文

pytorch Dataset类代码学习

from torch.utils.data import  Dataset
from PIL import Image
import osclass my_data(Dataset):def __init__(self, root_dir, label_dir): # 初始化类,根据这一个类,来创建特例实例需要调用的一个函数self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir, self.label_dir)self.img_path = os.listdir(self.path)def __getitem__(self, idx):img_name = self.img_path[idx]img_item_path = os.path.join(self.root_dir,self.label_dir, img_name)img = Image.open(img_item_path)label = self.label_dirreturn img, labeldef __len__(self):return len(self.img_path)root_dir = "dataset/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = my_data(root_dir, ants_label_dir)
bees_dataset = my_data(root_dir, bees_label_dir)train_dataset = ants_dataset + bees_dataset

在控制台中将上述代码粘贴:查看数据集等操作:

  ...: from PIL import Image...: import os
...........................:     def __len__(self):...:         return len(self.img_path)

创建数据集,包括路径与标签。还有蚂蚁的数据集。

root_dir = "dataset\train"
ants_label_dir = "ants"
ants_dataset = my_data(root_dir, ants_label_dir)

然而,出现如下的一些报错

OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: 'dataset\train\\ants'

原因是:

root_dir = "dataset/train"

斜画线反了,不能直接用复制粘贴里面来的。

完整读取数据集里的图片代码:

root_dir = "dataset/train"
ants_label_dir = "ants"
ants_dataset = my_data(root_dir, ants_label_dir)
img, label = ants_dataset[1]
img.show()

如果读取出来的图片反复都是一张,则是因为:读取的是上一次成功读取的图片。

错误原因是在这句代码中:

img, label = ants_dataset[1]

这句中的连接是逗号,并不是.

通过上述的语句,即可实现数据集图片的读取。

两个数据集的相加:

train_dataset = ants_dataset + bees_dataset

在控制台中,使用同样的方法读取:

len(ants_dataset)
输出:Out[23]: 124
len(bees_dataset)
输出:Out[24]: 121
img,label = train_dataset[123]
img.show()
img,label = train_dataset[124]
img.show()


http://www.mrgr.cn/news/12505.html

相关文章:

  • 牛客小白月赛99部分题解
  • 分布式系统
  • SpringBoot项目整合智谱AI + SSE推送流式数据到前端展示 + RxJava得浅显理解
  • WIFI驱动开发
  • 金融工程--基于akshare的数据获取
  • P1088 [NOIP2004 普及组] 火星人
  • Java | Leetcode Java题解之第376题摆动序列
  • MYSQL 优化
  • git安装及常用命令
  • asp.net core在win上的发布和部署
  • 若依,前后端分离项目,部署到服务器
  • 云端集中管控边缘服务:利用 EMQX ECP 在 K8s 上快速部署 NeuronEX
  • AI创新,DataOps聚能 | 白鲸开源DTCC共话DataOps新篇章
  • Linux操作系统常见面试题
  • Java MR Map Reduce 模型
  • 加速打开gtihub的工具dev-sidecar
  • vs 项目.gitignore设置过滤某个文件夹无效
  • 鸿蒙(API 12 Beta3版)【使用智能PhotoPicker】Media Library Kit媒体文件管理服务
  • 《机器学习》 SVM支持向量机 推导、参数解析、可视化实现
  • 期权交易误区分享:喜欢重仓!