Next-ViT 使用教程
Next-ViT 项目地址: https://gitcode.com/gh_mirrors/nex/Next-ViT
1. 项目介绍
Next-ViT 是由字节跳动智能创作 AutoML 团队提出的一种新型视觉Transformer网络结构。它旨在解决现有视觉Transformer在网络部署效率方面的挑战,特别是在工业级部署场景中。Next-ViT 通过设计 Next Convolution Block (NCB) 和 Next Transformer Block (NTB),分别捕捉局部和全局信息,并通过 Next Hybrid Strategy (NHS) 高效地结合这两种结构,以提高各种下游任务的性能。
2. 项目快速启动
首先,克隆项目仓库到本地:
git clone https://github.com/bytedance/Next-ViT.git
然后,安装所需的依赖:
pip3 install -r requirements.txt
数据准备
从 ImageNet 下载并解压 ImageNet 训练和验证图片。目录结构应为 torchvision.datasets.ImageFolder
的标准布局,训练和验证数据分别放在 train/
和 val/
文件夹中。
图像分类
要训练 Next-ViT-S 模型,使用以下命令:
cd classification/
bash train.sh 8 --model nextvit_small --batch-size 256 --lr 5e-4 --warmup-epochs 20 --weight-decay 0.1 --data-path your_imagenet_path
评估模型性能:
cd classification/
bash train.sh 8 --model nextvit_small --batch-size 256 --lr 5e-4 --warmup-epochs 20 --weight-decay 0.1 --data-path your_imagenet_path --resume ../checkpoints/nextvit_small_in1k_224.pth --eval
3. 应用案例和最佳实践
目标检测
Next-ViT 可以用作 mmdetection 中 Mask R-CNN 的强大 backbone。安装 mmdetection 后,可以按照以下命令训练:
cd detection/
PORT=29501 bash dist_train.sh configs/mask_rcnn_nextvit_small_1x.py 8
评估模型:
cd detection/
PORT=29501 bash dist_test.sh configs/mask_rcnn_nextvit_small_1x.py ../checkpoints/mask_rcnn_1x_nextvit_small.pth 8 --eval bbox
语义分割
Next-ViT 也适用于基于 mmsegmentation 的语义分割任务。安装 mmsegmentation 后,可以按照以下命令训练:
cd segmentation/
bash train.sh configs/sem_fpn_nextvit_small_1x.py 8
评估模型:
cd segmentation/
bash test.sh configs/sem_fpn_nextvit_small_1x.py ../checkpoints/sem_fpn_nextvit_small_1x.pth 8 --eval mIoU
4. 典型生态项目
目前,Next-ViT 已经被应用于多个视觉任务中,并与多个开源项目集成,例如:
- mmdetection:用于目标检测和实例分割的开源工具箱。
- mmsegmentation:用于语义分割的开源工具箱。
这些项目都提供了与 Next-ViT 集成的示例和配置文件,可以帮助用户快速开始自己的项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考