iFormer 项目使用教程
iFormer 项目地址: https://gitcode.com/gh_mirrors/if/iFormer
1. 项目目录结构及介绍
iFormer 项目的目录结构如下:
iFormer/
├── checkpoint/
│ └── checkpoint_384/
├── models/
├── LICENSE
├── MANIFEST.in
├── README.md
├── fine-tune.py
├── setup.cfg
├── train.py
└── validate.py
目录结构介绍
- checkpoint/: 存放训练过程中生成的检查点文件,
checkpoint_384/
是特定分辨率下的检查点。 - models/: 存放模型的定义文件。
- LICENSE: 项目的开源许可证文件。
- MANIFEST.in: 用于打包项目的清单文件。
- README.md: 项目的介绍和使用说明。
- fine-tune.py: 用于微调模型的脚本。
- setup.cfg: 项目的配置文件。
- train.py: 用于训练模型的脚本。
- validate.py: 用于验证模型性能的脚本。
2. 项目启动文件介绍
train.py
train.py
是用于训练 iFormer 模型的主要脚本。以下是启动训练的命令示例:
python -m torch.distributed.launch --nproc_per_node=8 train.py /dataset/imagenet \
--model iformer_small -b 128 --epochs 300 --img-size 224 --drop-path 0.2 --lr 1e-3 \
--weight-decay 0.05 --aa rand-m9-mstd0.5-inc1 --warmup-lr 1e-6 --warmup-epochs 5 \
--output checkpoint --min-lr 1e-6 --experiment iformer_small
fine-tune.py
fine-tune.py
用于在预训练模型的基础上进行微调。以下是启动微调的命令示例:
python -m torch.distributed.launch --nproc_per_node=8 fine-tune.py /dataset/imagenet \
--model iformer_small_384 -b 64 --lr 1e-5 --min-lr 1e-6 --warmup-lr 2e-8 --warmup-epochs 0 \
--epochs 20 --img-size 384 --drop-path 0.3 --weight-decay 1e-8 --mixup 0.1 --cutmix 0.1 \
--cooldown-epochs 10 --aa rand-m9-mstd0.5-inc1 --clip-grad 1.0 --output checkpoint_fine \
--initial-checkpoint checkpoint/iformer_small/model_best.pth.tar \
--experiment iformer_small_384
validate.py
validate.py
用于验证模型的性能。以下是启动验证的命令示例:
python validate.py /dataset/imagenet --model iformer_small --checkpoint checkpoint/iformer_small/model_best.pth.tar
3. 项目配置文件介绍
setup.cfg
setup.cfg
是项目的配置文件,用于定义项目的元数据和依赖项。以下是 setup.cfg
的部分内容示例:
[metadata]
name = iFormer
version = 1.0
description = Inception Transformer
author = Chenyang Si, Weihao Yu, Pan Zhou, Yichen Zhou, Xinchao Wang, Shuicheng YAN
license = Apache-2.0
[options]
install_requires =
torch>=1.7.0
torchvision>=0.8.1
timm==0.5.4
fvcore
apex-amp
配置文件介绍
- [metadata]: 定义项目的元数据,如名称、版本、描述、作者和许可证。
- [options]: 定义项目的依赖项,如
torch
、torchvision
、timm
等。
通过以上配置文件,可以确保项目在安装和运行时具备所需的依赖项和正确的元数据。