什么是新的
介绍
型号
特征
结果
入门(文档)
训练、验证、推理脚本
很棒的 PyTorch 资源
许可证
引用
清理 torch amp 的使用以避免 cuda 特定的调用,合并对MengqingCao 的 Ascend (NPU) 设备的支持,这些设备现在应该可以在 PyTorch 2.5 中使用,并具有新的设备扩展自动加载功能。也在 Pytorch 2.5 中测试了 Intel Arc (XPU),它(大部分)有效。
修复了从已弃用的路径timm.models.registry
导入时出现的错误,提高了现有弃用警告可见的优先级
InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) 到timm
的端口权重为vit_intern300m_patch14_448
按请求添加的 18/18d/34/34d ResNet 模型定义的预激活 (ResNetV2) 版本(权重待定)
版本1.0.10
添加了 MambaOut (https://github.com/yuweihao/MambaOut) 模型和权重。对不带 SSM 的 SSM 视觉模型的大胆尝试(本质上是带门控的 ConvNeXt)。原始权重+自定义变体和权重的组合。
模型 | 图片大小 | 前1名 | 前5名 | 参数计数 |
---|---|---|---|---|
mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1k | 第384章 | 87.506 | 98.428 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 288 | 86.912 | 98.236 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 224 | 86.632 | 98.156 | 101.66 |
mambaout_base_tall_rw.sw_e500_in1k | 288 | 84.974 | 97.332 | 86.48 |
mambaout_base_wide_rw.sw_e500_in1k | 288 | 84.962 | 97.208 | 94.45 |
mambaout_base_short_rw.sw_e500_in1k | 288 | 84.832 | 97.27 | 88.83 |
mambaout_base.in1k | 288 | 84.72 | 96.93 | 84.81 |
mambaout_small_rw.sw_e450_in1k | 288 | 84.598 | 97.098 | 48.5 |
mambaout_small.in1k | 288 | 84.5 | 96.974 | 48.49 |
mambaout_base_wide_rw.sw_e500_in1k | 224 | 84.454 | 96.864 | 94.45 |
mambaout_base_tall_rw.sw_e500_in1k | 224 | 84.434 | 96.958 | 86.48 |
mambaout_base_short_rw.sw_e500_in1k | 224 | 84.362 | 96.952 | 88.83 |
mambaout_base.in1k | 224 | 84.168 | 96.68 | 84.81 |
mambaout_small.in1k | 224 | 84.086 | 96.63 | 48.49 |
mambaout_small_rw.sw_e450_in1k | 224 | 84.024 | 96.752 | 48.5 |
mambaout_tiny.in1k | 288 | 83.448 | 96.538 | 26.55 |
mambaout_tiny.in1k | 224 | 82.736 | 96.1 | 26.55 |
mambaout_kobe.in1k | 288 | 81.054 | 95.718 | 9.14 |
mambaout_kobe.in1k | 224 | 79.986 | 94.986 | 9.14 |
mambaout_femto.in1k | 288 | 79.848 | 95.14 | 7.3 |
mambaout_femto.in1k | 224 | 78.87 | 94.408 | 7.3 |
SigLIP SO400M ViT 在 ImageNet-1k @ 378x378 上进行微调,为现有 SigLIP 384x384 模型添加了 378x378 选项
vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 top-1
vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
来自最新多语言 (i18n) 变体的 SigLIP SO400M ViT 编码器,patch16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256)。 OpenCLIP 更新待定。
添加两个 ConvNeXt“Zepto”模型和权重(一个带重叠茎,一个带贴片茎)。使用 RMSNorm,比之前的“Atto”小,2.2M 参数。
convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 top-1 @ 224
convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
添加一套微型测试模型,以改进单元测试和利基低资源应用程序 (https://huggingface.co/blog/rwightman/timm-tiny-test)
添加 MobileNetV4-Conv-Small (0.5x) 模型 (https://huggingface.co/posts/rwightman/793053396198664)
mobilenetv4_conv_small_050.e3000_r224_in1k - 65.81 top-1 @ 256, 64.76 @ 224
添加使用 MNV4 Small 配方训练的 MobileNetV3-Large 变体
mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81.81 @ 320, 80.94 @ 256
mobilenetv3_large_100.ra4_e3600_r224_in1k - 77.16 @ 256, 76.31 @ 224
更新了在 ImageNet-12k 上训练并在 ImageNet-1k 上进行微调的 SBB ViT 模型,挑战了相当多更大、更慢的模型
模型 | 前1名 | 前5名 | 参数计数 | 图片大小 |
---|---|---|---|---|
vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 87.438 | 98.256 | 64.11 | 第384章 |
vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 86.608 | 97.934 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 86.594 | 98.02 | 60.4 | 第384章 |
vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 85.734 | 97.61 | 60.4 | 256 |
MobileNet-V1 1.25、EfficientNet-B1 和 ResNet50-D 权重以及 MNV4 基线挑战方案
模型 | 前1名 | 前5名 | 参数计数 | 图片大小 |
---|---|---|---|---|
resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
effectivenet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
effectivenet_b1.ra4_e3600_r240_in1k | 80.406 | 95.152 | 7.79 | 240 |
mobilenetv1_125.ra4_e3600_r224_in1k | 77.600 | 93.804 | 6.27 | 256 |
mobilenetv1_125.ra4_e3600_r224_in1k | 76.924 | 93.234 | 6.27 | 224 |
添加 SAM2 (HieraDet) 骨弓和负重支持
添加 Hiera Small 重量训练 w/abswin pos 嵌入 in12k 并在 1k 上微调
模型 | 前1名 | 前5名 | 参数计数 |
---|---|---|---|
hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k | 84.912 | 97.260 | 35.01 |
hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k | 84.560 | 97.106 | 35.01 |
添加 RDNet(“DenseNets Reloaded”,https://arxiv.org/abs/2403.19588),感谢 Donghyun Kim
添加基于ra4
mnv4-small 配方的mobilenet_edgetpu_v2_m
权重。 80.1% top-1 @ 224 和 80.7 @ 256。
版本1.0.8
更多 MobileNet-v4 权重、带微调的 ImageNet-12k 预训练以及抗锯齿 ConvLarge 模型
模型 | 前1名 | 顶部1_错误 | 前5名 | 前5个错误 | 参数计数 | 图片大小 |
---|---|---|---|---|---|---|
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.99 | 15.01 | 97.294 | 2.706 | 32.59 | 第544章 |
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.772 | 15.228 | 97.344 | 2.656 | 32.59 | 第480章 |
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.64 | 15.36 | 97.114 | 2.886 | 32.59 | 第448章 |
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.314 | 15.686 | 97.102 | 2.898 | 32.59 | 第384章 |
mobilenetv4_conv_aa_large.e600_r384_in1k | 83.824 | 16.176 | 96.734 | 3.266 | 32.59 | 第480章 |
mobilenetv4_conv_aa_large.e600_r384_in1k | 83.244 | 16.756 | 96.392 | 3.608 | 32.59 | 第384章 |
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.99 | 17.01 | 96.67 | 3.33 | 11.07 | 320 |
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.364 | 17.636 | 96.256 | 3.744 | 11.07 | 256 |
令人印象深刻的 MobileNet-V1 和 EfficientNet-B0 基线挑战 (https://huggingface.co/blog/rwightman/mobilenet-baselines)
模型 | 前1名 | 顶部1_错误 | 前5名 | 前5个错误 | 参数计数 | 图片大小 |
---|---|---|---|---|---|---|
effectivenet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
effectivenet_b0.ra4_e3600_r224_in1k | 78.584 | 21.416 | 94.338 | 5.662 | 5.29 | 224 |
mobilenetv1_100h.ra4_e3600_r224_in1k | 76.596 | 23.404 | 93.272 | 6.728 | 5.28 | 256 |
mobilenetv1_100.ra4_e3600_r224_in1k | 76.094 | 23.906 | 93.004 | 6.996 | 4.23 | 256 |
mobilenetv1_100h.ra4_e3600_r224_in1k | 75.662 | 24.338 | 92.504 | 7.496 | 5.28 | 224 |
mobilenetv1_100.ra4_e3600_r224_in1k | 75.382 | 24.618 | 92.312 | 7.688 | 4.23 | 224 |
set_input_size()
原型添加到 vit 和 swin v1/v2 模型中,以允许在模型创建后更改图像大小、补丁大小、窗口大小。
改进了 swin 对不同大小处理的支持,除了set_input_size
之外, always_partition
和strict_img_size
参数已添加到__init__
以允许更灵活的输入大小限制
修复中间“Getter”功能包装器的无序索引信息,检查或范围索引。
添加几个小于 0.5M 参数的tiny
模型用于测试,这些模型实际上是在 ImageNet-1k 上训练的
模型 | 前1名 | 顶部1_错误 | 前5名 | 前5个错误 | 参数计数 | 图片大小 | 作物百分比 |
---|---|---|---|---|---|---|---|
test_efficientnet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0.36 | 192 | 1.0 |
test_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0.46 | 192 | 1.0 |
test_efficientnet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0.36 | 160 | 0.875 |
test_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0.46 | 160 | 0.875 |
test_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0.37 | 192 | 1.0 |
test_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0.37 | 160 | 0.875 |
修复 vit reg token init,感谢 Promisery
其他杂项修复
另外 3 个具有不同 MQA 权重初始化方案的 MobileNetV4 混合权重
模型 | 前1名 | 顶部1_错误 | 前5名 | 前5个错误 | 参数计数 | 图片大小 |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.ix_e600_r384_in1k | 84.356 | 15.644 | 96.892 | 3.108 | 37.76 | 第448章 |
mobilenetv4_hybrid_large.ix_e600_r384_in1k | 83.990 | 16.010 | 96.702 | 3.298 | 37.76 | 第384章 |
mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 83.394 | 16.606 | 96.760 | 3.240 | 11.07 | 第448章 |
mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 82.968 | 17.032 | 96.474 | 3.526 | 11.07 | 第384章 |
mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 82.492 | 17.508 | 96.278 | 3.722 | 11.07 | 320 |
mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 81.446 | 18.554 | 95.704 | 4.296 | 11.07 | 256 |
DaViT 模型中的 florence2 重量加载
添加了 MobileNetV4 模型和初始timm
训练权重集:
模型 | 前1名 | 顶部1_错误 | 前5名 | 前5个错误 | 参数计数 | 图片大小 |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.e600_r384_in1k | 84.266 | 15.734 | 96.936 | 3.064 | 37.76 | 第448章 |
mobilenetv4_hybrid_large.e600_r384_in1k | 83.800 | 16.200 | 96.770 | 3.230 | 37.76 | 第384章 |
mobilenetv4_conv_large.e600_r384_in1k | 83.392 | 16.608 | 96.622 | 3.378 | 32.59 | 第448章 |
mobilenetv4_conv_large.e600_r384_in1k | 82.952 | 17.048 | 96.266 | 3.734 | 32.59 | 第384章 |
mobilenetv4_conv_large.e500_r256_in1k | 82.674 | 17.326 | 96.31 | 3.69 | 32.59 | 320 |
mobilenetv4_conv_large.e500_r256_in1k | 81.862 | 18.138 | 95.69 | 4.31 | 32.59 | 256 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 81.276 | 18.724 | 95.742 | 4.258 | 11.07 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 80.858 | 19.142 | 95.768 | 4.232 | 9.72 | 320 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 80.442 | 19.558 | 95.38 | 4.62 | 11.07 | 224 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 80.142 | 19.858 | 95.298 | 4.702 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 79.928 | 20.072 | 95.184 | 4.816 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.808 | 20.192 | 95.186 | 4.814 | 9.72 | 256 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 79.438 | 20.562 | 94.932 | 5.068 | 9.72 | 224 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.094 | 20.906 | 94.77 | 5.23 | 9.72 | 224 |
mobilenetv4_conv_small.e2400_r224_in1k | 74.616 | 25.384 | 92.072 | 7.928 | 3.77 | 256 |
mobilenetv4_conv_small.e1200_r224_in1k | 74.292 | 25.708 | 92.116 | 7.884 | 3.77 | 256 |
mobilenetv4_conv_small.e2400_r224_in1k | 73.756 | 26.244 | 91.422 | 8.578 | 3.77 | 224 |
mobilenetv4_conv_small.e1200_r224_in1k | 73.454 | 26.546 | 91.34 | 8.66 | 3.77 | 224 |
Apple MobileCLIP(https://arxiv.org/pdf/2311.17049、FastViT 和 ViT-B)添加了图像塔模型支持和权重(OpenCLIP 支持的一部分)。
ViTamin (https://arxiv.org/abs/2404.02132) 添加了 CLIP 图像塔模型和权重(OpenCLIP 支持的一部分)。
OpenAI CLIP 改进的 ResNet 图像塔建模和权重支持(通过 ByobNet)。重构 AttentionPool2d。
支持将 PaliGemma jax 权重加载到具有平均池化的 SigLIP ViT 模型中。
从 Meta (https://github.com/facebookresearch/hiera) 添加 Hiera 模型。
为 transorms 添加normalize=
标志,返回带有原始 dytpe 的非标准化 torch.Tensor (对于chug
)
1.0.3版本发布
Searching for Better ViT Baselines (For the GPU Poor)
已发布权重和 vit 变体。探索 Tiny 和 Base 之间的模型形状。
模型 | 前1名 | 前5名 | 参数计数 | 图片大小 |
---|---|---|---|---|
vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 86.202 | 97.874 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 85.418 | 97.48 | 60.4 | 256 |
vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k | 84.322 | 96.812 | 63.95 | 256 |
vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k | 83.906 | 96.684 | 60.23 | 256 |
vit_base_patch16_rope_reg1_gap_256.sbb_in1k | 83.866 | 96.67 | 86.43 | 256 |
vit_medium_patch16_rope_reg1_gap_256.sbb_in1k | 83.81 | 96.824 | 38.74 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in1k | 83.706 | 96.616 | 60.4 | 256 |
vit_betwixt_patch16_reg1_gap_256.sbb_in1k | 83.628 | 96.544 | 60.4 | 256 |
vit_medium_patch16_reg4_gap_256.sbb_in1k | 83.47 | 96.622 | 38.88 | 256 |
vit_medium_patch16_reg1_gap_256.sbb_in1k | 83.462 | 96.548 | 38.88 | 256 |
vit_little_patch16_reg4_gap_256.sbb_in1k | 82.514 | 96.262 | 22.52 | 256 |
vit_wee_patch16_reg1_gap_256.sbb_in1k | 80.256 | 95.360 | 13.42 | 256 |
vit_pwee_patch16_reg1_gap_256.sbb_in1k | 80.072 | 95.136 | 15.25 | 256 |
vit_mediumd_patch16_reg4_gap_256.sbb_in12k | 不适用 | 不适用 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k | 不适用 | 不适用 | 60.4 | 256 |
添加了 AttentionExtract 助手,用于从timm
模型中提取注意力图。请参阅 #1232 中的示例(评论)
forward_intermediates()
API 得到改进并添加到更多模型中,包括一些具有其他提取方法的 ConvNet。
1047 个模型架构中有 1017 个支持features_only=True
特征提取。可以支持其余 34 种架构,但基于优先级请求。
删除 torch.jit.script 带注释的函数,包括旧的 JIT 激活。使用发电机和发电机的冲突效果会更好。
为早该发布的 1.0 版本做准备,现在一切已经稳定了一段时间了。
有一段时间缺失的重要功能, features_only=True
支持具有平面隐藏状态或非 std 模块布局的 ViT 模型(到目前为止涵盖'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'
)
上述功能支持通过新的forward_intermediates()
API 实现,该API 可与功能包装模块或直接使用。
模型 = timm.create_model('vit_base_patch16_224')final_feat, 中间体 = model.forward_intermediates(输入) 输出 = model.forward_head(final_feat) # 池化 + 分类器 headprint(final_feat.shape)torch.Size([2, 197, 768])for f in middles:print(f.shape)torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size ([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([2, 768, 14, 14])torch.Size([ 2, 768, 14, 14])print(output.shape)torch.Size([2, 1000])
模型 = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, features_only=True, out_indices=(-3, -2,))output = model(torch.randn(2, 3, 512, 512))对于输出中的 o: print(o.shape) 火炬.Size([2, 768, 32, 32])火炬.Size([2, 768, 32, 32])
添加了 TinyCLIP 视觉塔重量,谢谢 Thien Tran
添加了 Next-ViT 模型。改编自https://github.com/bytedance/Next-ViT
添加了 HGNet 和 PP-HGNetV2 模型。由 SeeFun 改编自 https://github.com/PaddlePaddle/PaddleClas
删除了 setup.py,移至 PDM 支持的基于 pyproject.toml 的构建
使用 _for_each 添加更新的模型 EMA impl 以减少开销
支持非 GPU 设备的训练脚本中的设备参数
其他杂项修复和小补充
最低支持的 Python 版本增加至 3.8
版本 0.9.16
数据集和转换重构
HuggingFace 流式(可迭代)数据集支持 ( --dataset hfids:org/dataset
)
Webdataset 包装器调整以改进分割信息获取,可以从支持的 HF hub webdataset 自动获取分割
使用最近的timm
ImageNet 上传到 https://huggingface.co/timm 测试了 HF datasets
和来自 HF 集线器的 Web 数据集包装器流
使输入和目标列/字段键在数据集中保持一致并通过参数传递
使用 e:g: --input-size 1 224 224
或--in-chans 1
时完全支持单色,在数据集中适当设置 PIL 图像转换
改进了几个备用裁剪和调整大小变换(ResizeKeepRatio、RandomCropOrPad 等),用于 PixParse 文档 AI 项目
将 SimCLR 风格的颜色抖动问题以及灰度和高斯模糊选项添加到增强和参数中
允许在训练脚本中不使用验证集( --val-split ''
)进行训练
添加--bce-sum
(类暗淡总和)和--bce-pos-weight
(正权重)参数进行训练,因为它们是常见的 BCE 损失调整,我经常进行硬编码
添加了 EfficientViT-Large 模型,感谢 SeeFun
修复 Python 3.7 兼容性,很快就会放弃对其的支持
其他杂项修复
0.9.12 版
通过model_args
配置条目为基于 Hugging Face Hub 的 timm 模型增加了显着的灵活性。 model_args
将在创建时作为 kwargs 传递给模型。
请参阅 https://huggingface.co/gaunernst/vit_base_patch16_1024_128.audiomae_as2m_ft_as20k/blob/main/config.json 的示例
用法:#2035
使用最新模型更新了 imagenet eval 和测试集 csv 文件
vision_transformer.py
打字和文档清理,作者:Laureeta
0.9.11 发布
添加了 DFN(数据过滤网络)和 MetaCLIP ViT 权重
添加了 DINOv2“注册”ViT 模型权重(https://huggingface.co/papers/2309.16588、https://huggingface.co/papers/2304.07193)
为使用它的 OpenAI、DFN、MetaCLIP 权重添加quickgelu
ViT 变体(效率较低)
感谢 Aryan,ResNet、MobileNet-v3 中添加了改进的打字功能
ImageNet-12k 微调(来自 LAION-2B CLIP) convnext_xxlarge
0.9.9 发布
vision_transformer.py
支持 SigLIP 图像塔权重。
微调和下游功能使用的巨大潜力。
根据 Vision Transformers 需要寄存器,在 vit 模型中提供实验性“寄存器”支持
使用新的重量版本更新了 RepViT。感谢万高
向 Swin 模型添加补丁大小调整支持(在预训练的重量负载上)
0.9.8 版本待定
TinyViT 由 SeeFun 添加
修复 EfficientViT (MIT) 以使用 torch.autocast,以便它可以恢复到 PT 1.10
0.9.7 发布
Py Torch Image Models ( timm
) 是图像模型、层、实用程序、优化器、调度程序、数据加载器/增强以及参考训练/验证脚本的集合,旨在将各种 SOTA 模型结合在一起重现 ImageNet 训练结果。
许多其他人的作品都在这里。我试图确保所有源材料都通过 README、文档和代码文档字符串中的 github、arxiv 论文等链接得到认可。如果我错过了什么,请告诉我。
所有模型架构系列都包含具有预训练权重的变体。有一些特定的模型变体没有任何权重,这不是一个错误。帮助训练新的或更好的重量总是值得赞赏的。
聚合嵌套变压器 - https://arxiv.org/abs/2105.12723
BEiT - https://arxiv.org/abs/2106.08254
大传输 ResNetV2 (BiT) - https://arxiv.org/abs/1912.11370
瓶颈变压器 - https://arxiv.org/abs/2101.11605
CaiT(图像变换器中的类注意力)- https://arxiv.org/abs/2103.17239
CoaT(Co-Scale Conv-Attentional 图像转换器)- https://arxiv.org/abs/2104.06399
CoAtNet(卷积和注意力)- https://arxiv.org/abs/2106.04803
ConvNeXt - https://arxiv.org/abs/2201.03545
ConvNeXt-V2 - http://arxiv.org/abs/2301.00808
ConViT(软卷积感应偏置视觉变压器)- https://arxiv.org/abs/2103.10697
CspNet(跨阶段部分网络)- https://arxiv.org/abs/1911.11929
DeiT - https://arxiv.org/abs/2012.12877
DeiT-III - https://arxiv.org/pdf/2204.07118.pdf
DenseNet - https://arxiv.org/abs/1608.06993
DLA - https://arxiv.org/abs/1707.06484
DPN(双路径网络)- https://arxiv.org/abs/1707.01629
EdgeNeXt - https://arxiv.org/abs/2206.10589
EfficientFormer - https://arxiv.org/abs/2206.01191
EfficientNet(MBConvNet 系列)
EfficientNet NoisyStudent(B0-B7,L2)- https://arxiv.org/abs/1911.04252
EfficientNet AdvProp (B0-B8) - https://arxiv.org/abs/1911.09665
EfficientNet (B0-B7) - https://arxiv.org/abs/1905.11946
EfficientNet-EdgeTPU(小、中、大)- https://ai.googleblog.com/2019/08/efficientnet-edgetpu-creating.html
EfficientNet V2 - https://arxiv.org/abs/2104.00298
FBNet-C - https://arxiv.org/abs/1812.03443
MixNet - https://arxiv.org/abs/1907.09595
MNASNet B1、A1(挤压-激发)和小型 - https://arxiv.org/abs/1807.11626
MobileNet-V2 - https://arxiv.org/abs/1801.04381
单路径 NAS - https://arxiv.org/abs/1904.02877
TinyNet - https://arxiv.org/abs/2010.14819
EfficientViT(麻省理工学院)- https://arxiv.org/abs/2205.14756
EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027
EVA - https://arxiv.org/abs/2211.07636
EVA-02 - https://arxiv.org/abs/2303.11331
FastViT - https://arxiv.org/abs/2303.14189
FlexiViT - https://arxiv.org/abs/2212.08013
FocalNet(焦点调制网络)- https://arxiv.org/abs/2203.11926
GCViT(全局上下文视觉转换器)- https://arxiv.org/abs/2206.09959
GhostNet - https://arxiv.org/abs/1911.11907
GhostNet-V2 - https://arxiv.org/abs/2211.12905
gMLP - https://arxiv.org/abs/2105.08050
GPU 高效网络 - https://arxiv.org/abs/2006.14090
光环网 - https://arxiv.org/abs/2103.12731
HGNet / HGNet-V2 - 待定
HRNet - https://arxiv.org/abs/1908.07919
InceptionNeXt - https://arxiv.org/abs/2303.16900
Inception-V3 - https://arxiv.org/abs/1512.00567
Inception-ResNet-V2 和 Inception-V4 - https://arxiv.org/abs/1602.07261
Lambda 网络 - https://arxiv.org/abs/2102.08602
LeViT(ConvNet 服装中的视觉变压器)- https://arxiv.org/abs/2104.01136
MaxViT(多轴视觉变压器)- https://arxiv.org/abs/2204.01697
MetaFormer(PoolFormer-v2、ConvFormer、CAFormer)- https://arxiv.org/abs/2210.13452
MLP-混合器 - https://arxiv.org/abs/2105.01601
MobileCLIP - https://arxiv.org/abs/2311.17049
MobileNet-V3(MBConvNet 带高效头)- https://arxiv.org/abs/1905.02244
FBNet-V3 - https://arxiv.org/abs/2006.02049
HardCoRe-NAS - https://arxiv.org/abs/2102.11646
LCNet - https://arxiv.org/abs/2109.15099
MobileNetV4 - https://arxiv.org/abs/2404.10518
MobileOne - https://arxiv.org/abs/2206.04040
MobileViT - https://arxiv.org/abs/2110.02178
MobileViT-V2 - https://arxiv.org/abs/2206.02680
MViT-V2(改进的多尺度视觉变压器)- https://arxiv.org/abs/2112.01526
NASNet-A - https://arxiv.org/abs/1707.07012
内斯特 - https://arxiv.org/abs/2105.12723
Next-ViT - https://arxiv.org/abs/2207.05501
NFNet-F - https://arxiv.org/abs/2102.06171
NF-RegNet / NF-ResNet - https://arxiv.org/abs/2101.08692
PNasNet - https://arxiv.org/abs/1712.00559
PoolFormer (MetaFormer) - https://arxiv.org/abs/2111.11418
基于池化的视觉转换器 (PiT) - https://arxiv.org/abs/2103.16302
PVT-V2(改进的金字塔视觉变压器)- https://arxiv.org/abs/2106.13797
RDNet(DenseNets 重载)- https://arxiv.org/abs/2403.19588
RegNet - https://arxiv.org/abs/2003.13678
RegNetZ - https://arxiv.org/abs/2103.06877
RepVGG - https://arxiv.org/abs/2101.03697
RepGhostNet - https://arxiv.org/abs/2211.06088
RepViT - https://arxiv.org/abs/2307.09283
ResMLP - https://arxiv.org/abs/2105.03404
ResNet/ResNeXt
ResNet (v1b/v1.5) - https://arxiv.org/abs/1512.03385
ResNeXt - https://arxiv.org/abs/1611.05431
“技巧袋”/Gluon C、D、E、S 变体 - https://arxiv.org/abs/1812.01187
弱监督 (WSL) Instagram 预训练/ImageNet 调整 ResNeXt101 - https://arxiv.org/abs/1805.00932
半监督(SSL)/半弱监督(SWSL)ResNet/ResNeXts - https://arxiv.org/abs/1905.00546
ECA-Net (ECAResNet) - https://arxiv.org/abs/1910.03151v4
挤压和激励网络 (SEResNet) - https://arxiv.org/abs/1709.01507
ResNet-RS - https://arxiv.org/abs/2103.07579
Res2Net - https://arxiv.org/abs/1904.01169
ResNeSt - https://arxiv.org/abs/2004.08955
ReXNet - https://arxiv.org/abs/2007.00992
SelecSLS - https://arxiv.org/abs/1907.00837
选择性内核网络 - https://arxiv.org/abs/1903.06586
Sequencer2D - https://arxiv.org/abs/2205.01972
Swin S3 (AutoFormerV2) - https://arxiv.org/abs/2111.14725
Swin 变压器 - https://arxiv.org/abs/2103.14030
Swin 变压器 V2 - https://arxiv.org/abs/2111.09883
Transformer-iN-Transformer (TNT) - https://arxiv.org/abs/2103.00112
TResNet - https://arxiv.org/abs/2003.13630
双胞胎(视觉变压器中的空间注意力)- https://arxiv.org/pdf/2104.13840.pdf
Visformer - https://arxiv.org/abs/2104.12533
视觉变压器 - https://arxiv.org/abs/2010.11929
维生素 - https://arxiv.org/abs/2404.02132
VOLO(视觉展望)- https://arxiv.org/abs/2106.13112
VovNet V2 和 V1 - https://arxiv.org/abs/1911.06667
Xception - https://arxiv.org/abs/1610.02357
Xception(修改对齐,Gluon)- https://arxiv.org/abs/1802.02611
Xception(修改对齐,TF)- https://arxiv.org/abs/1802.02611
XCiT(跨协方差图像转换器)- https://arxiv.org/abs/2106.09681
包含可通过create_optimizer
/ create_optimizer_v2
工厂方法使用的优化器:
adabelief
改编自 https://github.com/juntang-zhuang/Adabelief-Optimizer 的 AdaBelief 实现 - https://arxiv.org/abs/2010.07468
adafactor
改编自 FAIRSeq impl - https://arxiv.org/abs/1804.04235
大卫塞缪尔的adahessian
- https://arxiv.org/abs/2006.00719
adamp
和sgdp
由 Naver ClovAI - https://arxiv.org/abs/2006.08217
adan
改编自 https://github.com/sail-sg/Adan 的 Adan 实现 - https://arxiv.org/abs/2208.06677
lamb
是 Lamb 和 LambC 的实现(带有 trust-clipping),经过清理和修改以支持与 XLA 一起使用 - https://arxiv.org/abs/1904.00962
lars
的 LARS 和 LARC 实现(带 trust-clipping) - https://arxiv.org/abs/1708.03888
lion
和 Lion 的实现改编自 https://github.com/google/automl/tree/master/lion - https://arxiv.org/abs/2302.06675
lookahead
改编自 Liam 的 impl - https://arxiv.org/abs/1907.08610
madgrad
- 以及 MADGRAD 的实现改编自 https://github.com/facebookresearch/madgrad - https://arxiv.org/abs/2101.11075
nadam
是 Adam 与 Nesterov 动量的实现
nadamw
是 AdamW(带解耦重量衰减的 Adam)与 Nesterov 动量的实现。基于 https://github.com/mlcommons/algorithmic-efficiency 的简化实现
novograd
作者:Masashi Kimura - https://arxiv.org/abs/1905.11286
radam
作者:Liyuan Liu - https://arxiv.org/abs/1908.03265
rmsprop_tf
是我自己改编自 PyTorch RMSProp 的。再现改进的 Tensorflow RMSProp 行为
sgdw
和带有解耦权重衰减的 SGD 实现
已安装 NVIDIA Apex 的按名称fused
优化器
已安装 BitsAndBytes 的按名称的bits
优化器
从准中随机擦除 - https://arxiv.org/abs/1708.04896)
混合 - https://arxiv.org/abs/1710.09412
CutMix - https://arxiv.org/abs/1905.04899
AutoAugment (https://arxiv.org/abs/1805.09501) 和 RandAugment (https://arxiv.org/abs/1909.13719) 在 EfficientNet 训练的 impl 之后建模的 ImageNet 配置 (https://github.com/tensorflow/tpu/ blob/master/models/official/efficientnet/autoaugment.py)
AugMix w/ JSD 损失、JSD w/ clean + 增强混合支持也可与 AutoAugment 和 RandAugment 配合使用 - https://arxiv.org/abs/1912.02781
SplitBachNorm - 允许在干净数据和增强(辅助批规范)数据之间分割批规范层
DropPath 又名“随机深度” - https://arxiv.org/abs/1603.09382
DropBlock - https://arxiv.org/abs/1810.12890
模糊池 - https://arxiv.org/abs/1904.11486
其中包括我在项目中经常使用的几个(不太常见的)功能。他们的许多补充是我维护自己的模型集而不是通过 PIP 使用其他模型的原因:
所有型号都有一个通用的默认配置接口和API
访问/更改分类器 - get_classifier
和reset_classifier
仅对功能进行前向传递forward_features
(请参阅文档)
这些使得编写适用于任何模型的一致网络包装器变得容易
所有模型都支持通过create_model进行多尺度特征图提取(特征金字塔)(参见文档)
create_model(name, features_only=True, out_indices=..., output_stride=...)
out_indices
创建参数指定要返回哪些特征映射,这些索引基于 0,通常对应于C(i + 1)
特征级别。
output_stride
创建参数通过使用扩张卷积来控制网络的输出步幅。大多数网络默认步幅为 32。并非所有网络都支持此功能。
可以在模型创建后通过.feature_info
成员查询特征图通道数、缩减级别(步幅)
所有模型均具有一致的预训练重量加载器,必要时可调整最后的线性,并可根据需要从 3 通道输入调整为 1 通道输入
可在多种进程/GPU 模式下工作的高性能参考训练、验证和推理脚本:
NVIDIA DDP,每个进程一个 GPU,存在 APEX 的多个进程(AMP 混合精度可选)
PyTorch DistributedDataParallel w/ 多 GPU、单进程(AMP 已禁用,因为启用时会崩溃)
PyTorch 带单 GPU 单进程(AMP 可选)
动态全局池实现,允许在模型创建时从平均池、最大池、平均 + 最大或 concat([average, max]) 中进行选择。默认情况下,所有全局池都是自适应平均,并且与预训练权重兼容。
“测试时间池”包装器可以包装任何包含的模型,并且通常可以提高使用大于训练大小的输入图像进行推理的性能。我移植时的想法改编自原始 DPN 实现 (https://github.com/cypw/DPNs)
学习率调度器
AllenNLP 调度器
FAIRseq lr_scheduler
SGDR:热重启的随机梯度下降 (https://arxiv.org/abs/1608.03983)
想法采纳自
调度程序包括step
、 cosine
w/重启、 tanh
w/重启、 plateau
mrT23 的 Space-to-Depth (https://arxiv.org/abs/1801.04590)——原始论文?
自适应梯度裁剪(https://arxiv.org/abs/2102.06171,https://github.com/deepmind/deepmind-research/tree/master/nfnets)
通道和/或空间注意力模块的广泛选择:
瓶颈变压器 - https://arxiv.org/abs/2101.11605
CBAM - https://arxiv.org/abs/1807.06521
有效挤压激励 (ESE) - https://arxiv.org/abs/1911.06667
高效通道注意力(ECA) - https://arxiv.org/abs/1910.03151
聚集激发(GE)- https://arxiv.org/abs/1810.12348
全球背景(GC) - https://arxiv.org/abs/1904.11492
光环 - https://arxiv.org/abs/2103.12731
内卷 - https://arxiv.org/abs/2103.06255
Lambda 层 - https://arxiv.org/abs/2102.08602
非本地(NL)- https://arxiv.org/abs/1711.07971
挤压和激励 (SE) - https://arxiv.org/abs/1709.01507
选择性内核 (SK) - (https://arxiv.org/abs/1903.06586
拆分(SPLAT)- https://arxiv.org/abs/2004.08955
移动窗口 (SWIN) - https://arxiv.org/abs/2103.14030
模型验证结果可以在结果表中找到
官方文档可以在 https://huggingface.co/docs/hub/timm 找到。欢迎贡献文档。
Chris Hughes 撰写的 PyTorch 图像模型入门 (timm):从业者指南是一篇内容广泛的博客文章,详细介绍了timm
的许多方面。
timmdocs 是timm
的备用文档集。非常感谢 Aman Arora 为创建 timmdocs 所做的努力。
paperwithcode 是浏览timm
内模型的良好资源。
存储库的根文件夹包含参考训练、验证和推理脚本,这些脚本可与该存储库包含的模型和其他功能配合使用。它们只需稍加修改即可适用于其他数据集和用例。请参阅文档。
PyTorch 最大的资产之一是社区及其贡献。下面列出了我最喜欢的一些与此处的模型和组件完美搭配的资源。
Detectron2 - https://github.com/facebookresearch/detectron2
分割模型(语义) - https://github.com/qubvel/segmentation_models.pytorch
EfficientDet(Obj Det,即将语义化)- https://github.com/rwightman/efficientdet-pytorch
专辑 - https://github.com/albumentations-team/albumentations
科尼亚 - https://github.com/kornia/kornia
RepDistiller - https://github.com/HobbitLong/RepDistiller
torchdistill - https://github.com/yoshitomo-matsubara/torchdistill
PyTorch 度量学习 - https://github.com/KevinMusgrave/pytorch-metric-learning
fastai - https://github.com/fastai/fastai
此处的代码已获得 Apache 2.0 许可。我已注意确保包含或改编的任何第三方代码具有兼容(许可)许可证,例如 MIT、BSD 等。我已努力避免任何 GPL / LGPL 冲突。也就是说,您有责任确保遵守此处的许可证以及任何从属许可证的条件。在适用的情况下,我在文档字符串中链接了各种组件的来源/参考。如果您认为我错过了任何内容,请创建一个问题。
到目前为止,这里提供的所有预训练权重都是在 ImageNet 上进行预训练的,其中少数进行了一些额外的预训练(请参阅下面的额外注释)。 ImageNet 的发布仅用于非商业研究目的 (https://image-net.org/download)。目前尚不清楚这对于使用该数据集中的预训练权重有何影响。我使用 ImageNet 训练的任何模型都是出于研究目的,并且应该假设原始数据集许可适用于权重。如果您打算在商业产品中使用预训练权重,最好寻求法律建议。
这里包含的几个权重或参考是使用我无法访问的专有数据集进行预训练的。其中包括 Facebook WSL、SSL、SWSL ResNe(Xt) 和 Google Noisy Student EfficientNet 模型。 Facebook 模型具有明确的非商业许可(CC-BY-NC 4.0、https://github.com/facebookresearch/semi-supervised-ImageNet1K-models、https://github.com/facebookresearch/WSL-Images) 。除了 Apache 2.0 许可证(以及 ImageNet 问题)之外,Google 模型似乎没有任何限制。无论哪种情况,如有任何疑问,您都应该联系 Facebook 或 Google。
@misc{rw2019timm,作者 = {Ross Wightman},标题 = {PyTorch 图像模型},年份 = {2019},出版商 = {GitHub},期刊 = {GitHub 存储库},doi = {10.5281/zenodo.4414861},如何发布= {url{https://github.com/rwightman/pytorch-image-models}}}