使用ResNet进行迁移学习
./
├─dataset
│ ├─aircraft
│ │ ├─train
│ │ └─test
│ └─aircraft_similar
│ ├─train
│ └─test
├─output # 模型输出,包含:保存的模型,日志,可视化图片,loss_acc折线图
├─pretrain_model # 存放ResNet的预训练模型(ResNet18,ResNet50)
├─scripts # 训练,测试脚本
│ ├─train.sh
│ ├─eval.sh
│ └─eval_all.sh
├─utils # 工具类:日志,画图,训练
│ ├─__init__.py
│ ├─logger.py
│ ├─tools.py
│ └─train.py
├─main.py
└─trainer.py
运行脚本在scripts/
目录里,在scripts/
目录下运行
bash train.sh [NET] [DS] [UPT] [OTL] [EPOCH]
bash eval.sh [NET] [DS] [UPT] [OTL] [EPOCH]
- NET # 主干网络 [resnet50 , resnet18]
- DS # 数据集 [aircraft , aircraft_similar]
- UPT # 是否使用预训练权重 [0:False , 1:True]
- OTL # 是否只训练最后的线性层 [0:False , 1:True]
- EPOCH # epochs
Example:
bash train.sh resnet50 aircraft 1 0 20
验证所有模型(需下载output文件夹放在对应位置):
bash eval_all.sh