前言
- 这是一个Pytorch的学习笔记,同时加入了一点个人理解。
- 写这个博客的初衷是为了让我更好的
在课上摸鱼,复习 - 视频来自我是土堆 强烈推荐
Dataset类代码实战
这一步我们的主要数据是加载我们的数据集
步骤如下
- 重写Dataset类中的
init
和getitem
init
的目的:找到你的数据集所在的位置getitem
的目的:通过init中的路径,得到我们的数据,并返回
from torch.utils.data import Dataset
from PIL import Image
import os
# 使用MyData继承Dataset,然后对init和getitem进行重写
class MyData(Dataset):
def __init__(self,root_dir,label_dir):
self.root_dir = root_dir # 根目录
self.label_dir = label_dir # 这些文件对应的标签
self.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_dir
return img,label
def __len__(self):
return len(self.img_path)
root_dir = "dataset/train" # 这里可以是相对路径,也可以是绝对路径
ants_label_dir = "ants" # 这就是一个标签
bees_label_dir = "bees" # 这是另一个标签
ants_dataset = MyData(root_dir,ants_label_dir)
bees_dataset = MyData(root_dir,bees_label_dir)
train_dataset = ants_dataset + bees_dataset # 把两种标签的数据合并起来
标签:...,教程,img,self,label,Pytorch,path,root,dir
From: https://www.cnblogs.com/Sheldon2/p/16732968.html