使用Dataset数据集,需要先导入torch.utils.data 数据工具中的 Dataset
from torch.utils.data import Dataset (Dataset注意大写)
继承Dataset类后可重写两个方法
__init__(self, 之后的参数可加)
__getitem__(self, idx) idx为索引
__len__(self)为获取数据集长度
# Dataset 数据集
from torch.utils.data import Dataset
from PIL import Image # PIL 中 Image为图片处理类
import os # 系统类,用于路径的处理
class MyData(Dataset):
def __init__(self, root_dir, label_dir):
self.root_dir = root_dir
self.label_dir = label_dir
# 将根目录和标签目录路径拼接
path = os.path.join(self.root_dir, self.label_dir)
# 获取含有图片集的文件夹路径
self.img_list = os.listdir(path)
def __getitem__(self, idx):
# 获取单张图片名称
img_name = self.img_list[idx]
# 获取单张图片路径
img_item_path = os.path.join(self.root_dir, self.label_dir, img_name)
# Image类根据图片路径打开图片
img = Image.open(img_item_path)
label = self.label_dir
return img, label
def __len__(self):
return len(self.img_list)
r_dir = "train"
ants_l_dir = "ants"
bees_l_dir = "bees"
ants_dataset = MyData(r_dir, ants_l_dir)
bees_dataset = MyData(r_dir, bees_l_dir)
Python文件、控制台、Jupyter notebook优缺点
Python文件:代码以块为一个整体运行,Python文件的块是所有行的代码
优点:通用,传播方便,适用于大型项目
缺点:需要从头运行
Python控制台:以任意行为块运行
优点:显示每个变量属性
缺点:不利于代码阅读及修改
Jupyter:以任意行为块进行
优点:利于代码阅读及修改缺
缺点:环境需要配置



