torch.utils.data
Dataset子类
dataset子类用用构建数据集。是一个抽象类,需要重写__getitem__函数。
代码示例如下:
from torch.utils.data import Dataset
from PIL import Image
import os
class Mydata(Dataset):
def __init__(self, root_dir, label_dir):
self.root_dir = root_dir
# self.root_dir = "dataset/train"
self.label_dir = label_dir
# self.label_dir = "ants"
self.img_list = os.listdir(os.path.join(root_dir, label_dir))
'''
os.path.join(root_dir, label_dir) = "dataset/train/ants" 为蚂蚁图片的相对路径
os.listdir()函数返回路径下的文件或文件夹列表
[918932.jpg,7894398,jpg,...,fadio.jpg]
'''
def __getitem__(self, idx):
img_name = self.img_list[idx]
img_path = os.path.join(self.root_dir, self.label_dir, img_name)
img = Image.open(img_path)
label = self.label_dir
return img, label
'''
通过init()函数中的文件名列表,可以在getitem中通过index获取图片
__getitem__函数的作用:
ants_dataset = Mydata("dataset/train", "ants")
img , label = ants_dataset[0]
在类实例化后,可以通过索引调用getitem函数
'''
def __len__(self):
return len(self.img_path)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人