from torch.utils.data import Dataset
from PIL import Image
import os
class MyData(Dataset):
# 加载data和label
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) #获取数据集整个列表的名称
# 根据索引获取一条data和label
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"
ants_dataset =MyData(root_dir,ants_label_dir)
ants_dataset[0]
img,label = ants_dataset[0]
img.show()
bees_label_dir = "bees"
bees_dataset =MyData(root_dir,bees_label_dir)
bees_dataset[0]
img,label = bees_dataset[0]
img.show()
train_dataset = ants_dataset + bees_dataset
len(train_dataset)
len(ants_dataset)
len(bees_dataset)
Dataset类
最新推荐文章于 2024-09-06 15:55:40 发布