d2l.reorg_train_valid(data_dir, labels, valid_ratio) 看名字就知道是重新组织 训练集_验证集。它有三个参数,分别是文件路径,图片名与标签名对应的字典,比例。该方法的作用是生成一个 train_valid_test的文件夹,其下有三个子文件夹,分别是 train、train_valid、valid,每个子文件夹下又会根据 labels 参数把图片分门别类的放好。 (看如下操作会更具体一点)
d2l.reorg_test(data_dir) 重新组织测试集,即在 train_valid_test 目录(上文有提到)下生成 test 文件夹,test 文件夹下又会生成一个 unknown 的子目录,这个子目录会存放原本的 test 中的图片(看如下操作会更具体一点)
既然是重新组织,那肯定需要原本就有,才能重新组织。
我以猫种识别为例,其中,
- test 和 train 目录分别放了一些图片
- cats.cav 长这个样子,左边是图片的名字,右边是猫咪的品种名
接着运行如下代码
import os
from d2l import torch as d2l
data_dir = os.path.join('.', 'dataset')
print(data_dir)
def reorg_dog_data(data_dir, valid_ratio):
labels = d2l.read_csv_labels(os.path.join(data_dir, 'cats.csv')) # 把cats.csv中的数据提取成字典
d2l.reorg_train_valid(data_dir, labels, valid_ratio)
d2l.reorg_test(data_dir)
batch_size = 128
valid_ratio = 0.1
reorg_dog_data(data_dir, valid_ratio)
输出:.\dataset
同时项目目录变成了