1:在标准数据集上训练已有模型

为了评估模型的准确性,人们通常在一些标准数据集上测试模型。FGVCLib支持包括CUB_200_2011在内的公共数据集。本节将展示如何在受支持的数据集上测试现有模型。

基本步骤如下: 1.准备标准数据集 2.准备配置文件 3.在标准数据集上对模型进行训练、测试和预测

已有模型

我们提供了多种已有的方法,它们分别是:baseline_resnet50, MCL, PMG, PMG_v2, API-Net, CAL, PIM, TransFG

今后我们将会继续复现更多新的方法并将它们更新至FGVCLib中。

准备标准数据集

我们提供了CUB-200-2011,我们将数据集分为训练文件夹和测试文件夹。

例如,CUB-200-2011数据集:

  -/birds/train
	         └─── 001.Black_footed_Albatross
	                   └─── Black_Footed_Albatross_0001_796111.jpg
	                   └─── ...
	         └─── 002.Laysan_Albatross
	         └─── 003.Sooty_Albatross
	         └─── ...
   -/birds/test	
             └─── ...         

如果你已经准备好数据集了,你可以跳过下面的第一步。

第一步:打开”/fgvclib/datasets/cub.py”,将class CUB_200_2011: __init__ : download:bool=False修改为class CUB_200_2011: __init__ : download:bool=True

参数“download”控制是否下载数据集。通过设置download=True直接下载CUB数据集。默认为False。

第二步:打开”/configs/xxx/xxx.yml”,将DATASET-ROOT替换为你自己的路径。

训练模型

第一步:打开”/configs/xxx/xxx.yml”,将WEIGHT-SAVE_DIR替换为你自己的路径。 第二步:打开”/configs/xxx/xxx.yml”,检查模型的配置,你可以自己修改这些配置。 第三步:执行主程序main.py进行训练

python main.py --config configs/resnet/resnet50.yml

这里存在几类参数控制着程序的运行配置:

  • ‘–config’:配置文件路径。

  • ‘–task’: 默认为train

  • ‘–device’:两种选择是cuda和cpu。默认为cuda

  • ‘–world-size’:分布式进程的数量。默认值是4。

  • ‘–dist-url’:Url用于设置分布式培训。默认值是’env://’。

如果你想在cpu上运行它,你应该执行下面的:

python main.py --config configs/resnet/resnet50.yml --device cpu

测试模型

python main.py --config configs/resnet/resnet50.yml --task predict