A ConvNet for the 2020s
ConvNeXt的官方PyTorch实现,来自以下论文。
A ConvNet for the 2020s. arXiv 2022.
Liu Zhuang,Hanzi Mao,Chao-Yuan Wu,Christoph Feichtenhofer,Trevor DarrellandSaining Xie
Facebook AI Research, UC Berkeley
我们提出ConvNeXt,一个完全由标准ConvNet模块构建的纯ConvNet模型。ConvNeXt准确、高效、可扩展且设计非常简单。
目录
- ImageNet-1K 训练代码
- ImageNet-22K预训练代码
- ImageNet-1K微调代码
- 下游传输(检测、分割)代码
结果和预训练模型
ImageNet-1K的训练模型
| 名称 | 分辨率 | acc@1 | #params | FLOPs | 模型 |
|---|---|---|---|---|---|
| ConvNeXt-T | 224x224 | 82.1 | 28M | 4.5G | 模型 |
| ConvNeXt-S | 224x224 | 83.1 | 50M | 8.7G | 模型 |
| ConvNeXt-B | 224x224 | 83.8 | 89M | 15.4G | 模型 |
| ConvNeXt-B | 384x384 | 85.1 | 89M | 45.0G | 模型 |
| ConvNeXt-L | 224x224 | 84.3 | 198M | 34.4G | 模型 |
| ConvNeXt-L | 384x384 | 85.5 | 198M | 101.0G | 模型 |
ImageNet-22K的训练模型
| 名称 | 分辨率 | acc@1 | #params | FLOPs | 22k模型 | 1k模型 |
|---|---|---|---|---|---|---|
| ConvNeXt-B | 224x224 | 85.8 | 89M | 15.4G | 模型 | 模型 |
| ConvNeXt-B | 384x384 | 86.8 | 89M | 47.0G | - | 模型 |
| ConvNeXt-L | 224x224 | 86.6 | 198M | 34.4G | 模型 | 模型 |
| ConvNeXt-L | 384x384 | 87.5 | 198M | 101.0G | - | 模型 |
| ConvNeXt-XL | 224x224 | 87.0 | 350M | 60.9G | 模型 | 模型 |
| ConvNeXt-XL | 384x384 | 87.8 | 350M | 179.0G | - | 模型 |
ImageNet-1K的训练模型(各向同性)。
| 名称 | 分辨率 | acc@1 | #params | FLOPs | 模型 |
|---|---|---|---|---|---|
| ConvNeXt-S | 224x224 | 78.7 | 22M | 4.3G | 模式 |
| ConvNeXt-B | 224x224 | 82.0 | 87M | 16.9G | 模型 |
| ConvNeXt-L | 224x224 | 82.6 | 306M | 59.7G | 模型 |
安装
请查看INSTALL.md的安装说明。
评估
我们给出了一个ImageNet-22K预训练,然后ImageNet-1K微调的ConvNeXt-B的评估命令示例。
单GPU
python main.py --model convnext_base --eval true \
--resume https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_1k_224.pth \
--input_size 224 --drop_path 0.2 \
--data_path /path/to/imagenet-1k
多GPU
python -m torch.distributed.launch --nproc_per_node=8 main.py \
--model convnext_base --eval true \
--resume https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_1k_224.pth \
--input_size 224 --drop_path 0.2 \
--data_path /path/to/imagenet-1k
这应该可以得到
* Acc@1 85.820 Acc@5 97.868 loss 0.563
- 对于评估其他模型的变体,请相应地改变
--model,--resume,--input_size。你可以从上面的表格中获得预训练模型的网址。 - 设置特定于模型的
--drop_path在评估中不是严格要求的,因为 timm 中的DropPath模块在评估中的行为是一样的;但在训练中是需要的。参见TRAINING.md或我们的论文,以了解不同模型使用的值。
训练
参见TRAINING.md以了解训练和微调说明。
鸣谢
这个资源库是使用timm库、DeiT和BEiT资源库建立的。
许可
本项目是在MIT许可下发布的。请参阅LICENSE文件以了解更多信息。
引用
如果你觉得这个资源库有帮助,请考虑引用。
@Article{liu2021convnet,
author = {Zhuang Liu and Hanzi Mao and Chao-Yuan Wu and Christoph Feichtenhofer and Trevor Darrell and Saining Xie},
title = {A ConvNet for the 2020s},
journal = {arXiv preprint arXiv:2201.03545},
year = {2022},
}
