用Dataset类读取图片:
数据集地址:链接:https://pan.baidu.com/s/1R5mBwBo-AGydrwZX0EDbCA 提取码:tkrp
from torch.utils.data import Dataset #加载Dataset类,在torch工具箱内,常用的工具区utils,其中关于数据的data区中导入
import os #打开文件夹。获取所有图片的地址,python中关于系统的一个库
from PIL import Image #读取图片。或者用opencv,写为import cv2
class Mydata(Dataset): #继承Dataset类
def __init__(self,root_dir,lable_dir): #类的实例化,主函数创建实例对象时,自动调用该函数,主要作为外部信息传入类中私有方法的接口
self.root_dir=root_dir #图片的目录地址。函数中的变量不能赋值给另一个函数,但self可以
self.lable_dir=lable_dir #图片的标签信息
self.img_name=os.listdir(self.root_dir)#os打开目录,listdir函数返回目录下文件(夹)的名称列表
def __getitem__(self, idx): #实例化__getitem__方法,idx代表索引。实力对象通过:对象[idx],python会自动调用该函数
img_name=self.img_name[idx] #列表中索引为idx的值(文件名称,此处值图片名称)赋给img_name
img_path=os.path.join(self.root_dir,img_name)#具体的图片路径,用os.path.join

这段代码展示了如何使用PyTorch的Dataset类从本地文件系统加载图像数据集。首先导入了必要的库,包括torch.utils.data.Dataset、os和PIL.Image。定义了一个名为Mydata的自定义Dataset子类,它接受图像目录和标签目录作为输入。在__init__方法中,保存了目录信息并获取了所有图像文件名。__getitem__方法根据索引返回图像和对应的标签。最后,通过实例化Mydata类创建了蚂蚁和蜜蜂数据集,并将它们合并,然后显示了第124个样本的图像。
最低0.47元/天 解锁文章
954

被折叠的 条评论
为什么被折叠?



