pytorch1->dataset简单例题理解
from torch.utils.data import Dataset
from PIL import Image
import os
class MyDataset(Dataset):
def __init__(self,root_dir):
self.root_dir=root_dir
self.image_paths=[
os.path.join(root_dir,f)
for f in os.listdir(root_dir)
if f.endswith('jpg')
]
def __len__(self):
return len(self.image_paths)
def __getitem__(self,idx):
img_path=self.image_paths[idx]
img =Image.open(img_path)
return img
dataset =MyDataset('ants_image')
img=dataset[0]
print(f'一共有{len(dataset)}张图片')
print(f'第一张图片:{img}')
1. from torch.utils.data import Dataset
torch:库,utils:实用工具包,data:模块,Dataset:数据集类(身份证,实际用处不大)
2 . from PIL import Image
PIL:Python Imaging Library(Python 图像处理库),Image:图片处理模块
3. import os
os 是 模块,全称 Operating System(操作系统)
4 . __init__魔法方法作用:类创建时自动调用
5 . def __init__(self,root_dir):
self的作用:指代类的实例
6. os.path.join(root_dir,f)
os,模块,path路径子模块,join连接路径函数
7.os.listdir(root_dir)
打开文件夹,返回子文件名的列表
8.os.path.join(root_dir,f)
for f in os.listdir(root_dir)
if f.endswith('jpg')
表达式 for f in 列表 if 表达式,即列表推导式
作用是文件夹里每一个jpg文件把文件夹名和文件名连接起来形成新的路径
9 . def __len__(self):
return len(self.image_paths)
魔法方法里可以使用len,更方便
10 . def __getitem__(self,idx):
img_path=self.image_paths[idx]
img =Image.open(img_path)
return img
从self.image_paths列表中索引拿到图片,打开并返回一个图片对象
11 . dataset =MyDataset('ants_image')
img=dataset[0]
dataset是数据集对象。datset[0]是图片对象
更多推荐


所有评论(0)