使用数据集
在LibFewShot
中,数据集有固定的格式。我们按照大多数小样本学习设置下的数据集格式进行数据的读取,例如 miniImageNet 和 tieredImageNet ,因此例如
Caltech-UCSD Birds 200
等数据集只需从网络上下载并解压就可以使用。如果你想要使用一个新的数据集,并且该数据集的数据形式与以上数据集不同,那么你需要自己动手将其转换成相同的格式。
数据集格式
与 miniImageNet 一样,数据集的格式应该和下面的示例一样:
dataset_folder/
├── images/
│ ├── images_1.jpg
│ ├── ...
│ └── images_n.jpg
├── train.csv *
├── test.csv *
└── val.csv *
所有的训练、验证以及测试图像都需要放置在images
文件夹下,分别使用train.csv
,test.csv
和val.csv
文件分割数据集。三个文件的格式都类似,需要以下面的格式进行数据的组织:
filename , label
images_m.jpg, class_name_i
...
images_n.jpg, class_name_j
CSV文件的表头仅含文件名和类名两列。这里文件名的路径应是images
文件夹下的相对路径,即对于一张绝对路径为.../dataset_folder/images/images_1.jpg
的图像,其filename
字段就需要填写images_1.jpg
,同理,对于绝对路径为.../dataset_folder/images/class_name_1/images_1.jpg
的图像,其filename
字段就需要填写class_name_1/images_1.jpg
配置数据集
当下载好或按照上述格式整理好数据集后,只需要在配置文件中修改data_root
字段即可,注意LibeFewShot
会将数据集文件夹名当作数据集名称打印在log上。