timm 文档

近期更改

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验的访问权限

以开始

近期更改

2023年8月28日

  • vision_transformer.pyvision_transformer_hybrid.pydeit.pyeva.py 中模型添加了对动态图尺寸的支持,不会破坏向后兼容。
    • 在模型创建时将 dynamic_img_size=True 添加到参数中,允许每前向传递改变网格大小(插值每次前向传递中的绝对和/或ROPE位置嵌入)。
    • dynamic_img_pad=True 添加允许不整除补丁尺寸的图像大小(每个前向传递将底部右侧填充到补丁尺寸)。
    • 启用动态模式之一将破坏FX跟踪,除非PatchEmbed模块被添加为叶子节点。
    • 通过在创建时通过不同的 img_size 传递来调整位置嵌入的现有方法(插值预训练嵌入权重一次)仍然有效。
    • 在创建时现有更改 patch_size 的方法(一次调整预训练的patch_embed权重)仍然有效。
    • 示例验证命令 python validate.py /imagenet --model vit_base_patch16_224 --amp --amp-dtype bfloat16 --img-size 255 --crop-pct 1.0 --model-kwargs dynamic_img_size=True dyamic_img_pad=True

2023年8月25日

2023年8月11日

  • Swin, MaxViT, CoAtNet 和 BEiT 模型支持在创建时调整图像/窗口大小,并适配预训练权重
  • 示例验证命令,用于测试非方形的调整大小:python validate.py /imagenet --model swin_base_patch4_window7_224.ms_in22k_ft_in1k --amp --amp-dtype bfloat16 --input-size 3 256 320 --model-kwargs window_size=8,10 img_size=256,320

2023年8月3日

  • 添加了对 HRNet w18_small 和 w18_small_v2 的 GluonCV 权重。由 SeeFun 转换。
  • 修复 selecsls* 模型命名回归问题
  • ViT/EVA 的补丁和位置嵌入在加载时支持 bfloat16/float16 权重(或动态调整大小时的激活值)
  • 准备 v0.9.5 版本发布

2023年7月27日

  • 添加了 timm 训练的 seresnextaa201d_32x8d.sw_in12k_ft_in1k_384 权重(以及 .sw_in12k 预训练)和 ImageNet-1k 上的 87.3% top-1,是目前我所知的最好的 ImageNet ResNet 家族模型。
  • RepViT 模型和权重(https://arxiv.org/abs/2307.09283)由 wangao 添加。
  • I-JEPA ViT 特征权重(无分类器)由 SeeFun 添加。
  • SAM-ViT((segment anything))特征权重(无分类器)由 SeeFun 添加。
  • 支持为 EfficientNet 添加替代特征提取方法和负索引。
  • 添加 NAdamW 优化器。
  • 其他修正

2023年5月11日

  • timm 0.9版本发布,从0.8.xdev版本过渡

2023年5月10日

  • 现在默认从Hugging Face Hub下载,共有1132个模型在 https://huggingface.co/timm,1163个权重在timm
  • 感谢 Leng Yue,增加了 DINOv2 vit feature backbone 权重
  • 增加了 FB MAE vit feature backbone 权重
  • 增加了 OpenCLIP DataComp-XL L/14 feat backbone 权重
  • 增加了 MetaFormer (poolformer-v2, caformer, convformer, 更新的 poolformer (v1)),由 Fredo Guan 提供权重
  • 在 vit/deit 模型上加入实验性的 get_intermediate_layers 函数以获取隐藏状态(灵感来自 DINO 实现)。这是工作在进展中,可能进行重大更改...欢迎反馈。
  • 如果 pretrained=True 且没有权重,则模型创建时将抛出错误(而不是继续使用随机初始化)
  • 修复了与 inception / nasnet TF 来源的权重相关的回归问题,其中原始分类器具有1001个类别
  • 将 bitsandbytes (https://github.com/TimDettmers/bitsandbytes) 优化器添加到工厂,可使用 bnb 前缀,例如 bnbadam8bit
  • 其他清理和修复
  • 正式测试以切换到0.9并使 timm 离开预发布状态

2023年4月27日

  • 97%的timm模型上传到HF Hub,几乎所有都已经更新以支持多权重预训练配置
  • 对一批模型进行了一点点清理和重构,增加了多权重功能。增加了更多融合注意力(F.sdpa)和仅特征支持,以及torchscript修复。

2023年4月21日

  • 在训练脚本中添加了对梯度累积的支持,并进行了测试(使用--grad-accum-steps),感谢Taeksang Kim
  • 在HF Hub上添加了更多权重(cspnet、cait、volo、xcit、tresnet、hardcorenas、densenet、dpn、vovnet、xception_aligned)。
  • 在train.py中增加了--head-init-scale--head-init-bias,以缩放分类器头并设置固定偏差用于微调。
  • 删除了所有InplaceABN(inplace_abn)的使用,将tresnet中的使用替换为常规BatchNorm(相应地修改了权重)。

2023年4月12日

  • 添加了ONNX导出脚本、验证脚本和长期闲置的帮助器。针对最新的ONNX + PyTorch调整了'same'填充以实现更好的导出。
  • 重构了vit和类似于vit模型的dropout参数,将drop_rate划分为drop_rate(分类器dropout)、proj_drop_rate(块mlp / 输出投影)、pos_drop_rate(位置嵌入dropout)和attn_drop_rate(注意力dropout)。还向vit和eva模型添加了块dropout(FLIP)。
  • 为更多vit模型添加了融合F.scaled_dot_product_attention支持,添加了环境变量(TIMM_FUSED_ATTN)进行控制,并提供了配置接口以启用/禁用。
  • 添加了EVA-CLIP骨干网络(带图像塔权重),从多达4B参数的“巨大”模型到336x336的OpenAI ViT模式,这些模式之前被遗漏了。

2023年4月5日

  • 将所有ResNet模型推送至Hugging Face Hub,并支持多权重。
    • 将所有过去的timm训练权重添加了基于配方标签,以便区分。
    • 所有ResNet A1/A2/A3(种子0)和R50示例 B/C1/C2/D的权重可用。
    • 将torchvision v2配方权重添加到现有的torchvision原始模型中。
    • 请参阅比较表,网址为:[https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison](https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison)
  • 为几个抗锯齿的ResNet模型提供了新的ImageNet-12k + ImageNet-1k微调。
    • resnetaa50d.sw_in12k_ft_in1k - 81.7 @ 224, 82.6 @ 288
    • resnetaa101d.sw_in12k_ft_in1k - 83.5 @ 224, 84.1 @ 288
    • seresnextaa101d_32x8d.sw_in12k_ft_in1k - 86.0 @ 224, 86.5 @ 288
    • seresnextaa101d_32x8d.sw_in12k_ft_in1k_288 - 86.5 @ 288, 86.7 @ 320

2023年3月31日

  • 为convnext-base/large CLIP模型添加第一组ConvNext-XXLarge CLIP -> IN-1k微调和IN-12k中间微调。
模型 top1 top5 img_size param_count gmacs macts
convnext_xxlarge.clip_laion2b_soup_ft_in1k 88.612 98.704 256 846.47 198.09 124.45
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 88.312 98.578 384 200.13 101.11 126.74
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 87.968 98.47 320 200.13 70.21 88.02
convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 87.138 98.212 384 88.59 45.21 84.49
convnext_base.clip_laion2b_augreg_ft_in12k_in1k 86.344 97.97 256 88.59 20.09 37.55
  • 添加EVA-02 MIM预训练和微调权重,推送到HF hub并更新所有EVA模型的模型卡。第一项模型超过90% top-1(99% top-5)!更多关于他们结合MIM、CLIP与多种模型、数据集和训练食谱修改的工作细节请查看原始代码和权重:[https://github.com/baaivision/EVA](https://github.com/baaivision/EVA)
模型 top1 top5 param_count img_size
eva02_large_patch14_448.mim_m38m_ft_in22k_in1k 90.054 99.042 305.08 448
eva02_large_patch14_448.mim_in22k_ft_in22k_in1k 89.946 99.01 305.08 448
eva_giant_patch14_560.m30m_ft_in22k_in1k 89.792 98.992 1014.45 560
eva02_large_patch14_448.mim_in22k_ft_in1k 89.626 98.954 305.08 448
eva02_large_patch14_448.mim_m38m_ft_in1k 89.57 98.918 305.08 448
eva_giant_patch14_336.m30m_ft_in22k_in1k 89.56 98.956 1013.01 336
eva_giant_patch14_336.clip_ft_in1k 89.466 98.82 1013.01 336
eva_large_patch14_336.in22k_ft_in22k_in1k 89.214 98.854 304.53 336
eva_giant_patch14_224.clip_ft_in1k 88.882 98.678 1012.56 224
eva02_base_patch14_448.mim_in22k_ft_in22k_in1k 88.692 98.722 87.12 448
eva_large_patch14_336.in22k_ft_in1k 88.652 98.722 304.53 336
eva_large_patch14_196.in22k_ft_in22k_in1k 88.592 98.656 304.14 196
eva02_base_patch14_448.mim_in22k_ft_in1k 88.23 98.564 87.12 448
eva_large_patch14_196.in22k_ft_in1k 87.934 98.504 304.14 196
eva02_small_patch14_336.mim_in22k_ft_in1k 85.74 97.614 22.13 336
eva02_tiny_patch14_336.mim_in22k_ft_in1k 80.658 95.524 5.76 336
  • DeiT和MLP-Mixer模型的多权重和HF hub支持

2023年3月22日

  • 将更多权重推送到HF hub,同时支持多权重,包括:regnet.pyrexnet.pybyobnet.pyresnetv2.pyswin_transformer.pyswin_transformer_v2.pyswin_transformer_v2_cr.py
  • Swin Transformer模型支持特征提取(NCHW特征图用于swinv2_cr_*,其余所有为NHWC)和空间嵌入输出。
  • 添加了经过重大重构、特征提取、无固定分辨率/大小约束的FocalNet(来自https://github.com/microsoft/FocalNet)模型和权重。
  • 在HF hub push、SWAG、SEER和torchvision v2权重推动下,RegNet权重增加。SEER的性能相对较差,但在模型大小方面可能很有用。
  • 增加了更多的ImageNet-12k预训练和1k微调的权重。
    • rexnetr_200.sw_in12k_ft_in1k - 82.6 @ 224, 83.2 @ 288
    • rexnetr_300.sw_in12k_ft_in1k - 84.0 @ 224, 84.5 @ 288
    • regnety_120.sw_in12k_ft_in1k - 85.0 @ 224, 85.4 @ 288
    • regnety_160.lion_in12k_ft_in1k - 85.6 @ 224, 86.0 @ 288
    • regnety_160.sw_in12k_ft_in1k - 224分辨率为85.6,288分辨率为86.0(与SWAG PT + 1k FT相比,分辨率更低但相同,但是远低于SEER FT)
  • 添加了模型名称弃用和重映射功能(为将0.8.x版本推出预发布阶段打下了里程碑)。正在添加映射...
  • 修复了少量bug并进行了改进。

2023年2月26日

  • 添加了ConvNeXt-XXLarge CLIP预训练图像塔权重,用于微调和特征(微调待定)——请参阅模型卡片
  • convnext_xxlarge默认的LayerNorm eps更新为1e-5(对于CLIP权重,提高了稳定性)
  • 0.8.15dev0

2023年2月20日

  • 添加了320x320的convnext_large_mlp.clip_laion2b_ft_320convnext_lage_mlp.clip_laion2b_ft_soup_320 CLIP图像塔权重,用于特征和微调
  • 发布0.8.13dev0,包含最新变更和提高迁移到huggingface org的实现

2023年2月16日

  • 添加了对检查点的支持
  • 采纳了《将视觉Transformer扩展到22B个参数》(https://arxiv.org/abs/2302.05442)中的想法——qk norm、RmsNorm、并行块
  • 添加了对 F.scaled(dot_product_attention)的支持(仅适用于 PyTorch 2.0)到 `vit`, `vit_relpos`, `coatnet/maxxvit`(起始)。
  • 增加了 Lion 优化器(带多张量选项)[https://arxiv.org/abs/2302.06675]
  • 梯度检查点与 features_only=True 一起工作。

2023年2月7日

  • results 文件夹中添加了新的推理基准数值。
  • 添加了 convnext LAION CLIP 训练权重和初始的 in1k 微调集。
    • convnext_base.clip_laion2b_augreg_ft_in1k - 86.2% @ 256x256
    • convnext_base.clip_laiona_augreg_ft_in1k_384 - 86.5% @ 384x384
    • convnext_large_mlp.clip_laion2b_augreg_ft_in1k - 87.3% @ 256x256
    • convnext_large_mlp.clip_laion2b_augreg_ft_in1k_384 - 87.9% @ 384x384
  • 添加了 DaViT 模型。支持 features_only=True。由 Fredo 从 https://github.com/dingmyu/davit 调整。
  • 在 MaxViT、ConvNeXt 和 DaViT 中使用共同的 NormMlpClassifierHead。
  • 添加 EfficientFormer-V2 模型,更新 EfficientFormer,重构 LeViT(紧密相关的架构)。权重在 HF hub 上。
    • 新的 EfficientFormer-V2 架构,与原始模型相比进行了重大重构[https://github.com/snap-research/EfficientFormer]。支持 features_only=True
    • EfficientFormer 做了一些轻微的更新。
    • 将 LeViT 模型重构为阶段,为新 conv 变体添加对 features_only=True 的支持,需要重新映射权重。
  • 将 ImageNet 元数据(synsets,indices)从 /results 移至 timm/data/_info
  • 将 ImageNetInfo / DatasetInfo 类添加到 timm,以提供各种 ImageNet 分类器布局的标记。
    • 更新 inference.py 用于执行,尝试: python inference.py /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
  • 准备发布 0.8.10 pypi 测试预发布版本(最终测试)。

2023年1月20日

  • 在 384x384 下添加了两个 convnext 12k -> 1k 微调。

    • convnext_tiny.in12k_ft_in1k_384 - 85.1 @ 384
    • convnext_small.in12k_ft_in1k_384 - 86.2 @ 384
  • 将所有 MaxxViT 权重推送到 HF hub,并为 rw 基础 MaxViT 和 CoAtNet 1/2 模型添加新的 ImageNet-12k -> 1k 微调。

模型 top1 top5 每秒样本数 参数(M) GMAC 激活(M)
maxvit_xlarge_tf_512.in21k_ft_in1k 88.53 98.64 21.76 475.77 534.14 1413.22
maxvit_xlarge_tf_384.in21k_ft_in1k 88.32 98.54 42.53 475.32 292.78 668.76
maxvit_base_tf_512.in21k_ft_in1k 88.20 98.53 50.87 119.88 138.02 703.99
maxvit_large_tf_512.in21k_ft_in1k 88.04 98.40 36.42 212.33 244.75 942.15
maxvit_large_tf_384.in21k_ft_in1k 87.98 98.56 71.75 212.03 132.55 445.84
maxvit_base_tf_384.in21k_ft_in1k 87.92 98.54 104.71 119.65 73.80 332.90
maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k 87.81 98.37 106.55 116.14 70.97 318.95
maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k 87.47 98.37 149.49 116.09 72.98 213.74
coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k 87.39 98.31 160.80 73.88 47.69 209.43
maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k 86.89 98.02 375.86 116.14 23.15 92.64
maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k 86.64 98.02 501.03 116.09 24.20 62.77
maxvit_base_tf_512.in1k 86.60 97.92 50.75 119.88 138.02 703.99
coatnet_2_rw_224.sw_in12k_ft_in1k 86.57 97.89 631.88 73.87 15.09 49.22
maxvit_large_tf_512.in1k 86.52 97.88 36.04 212.33 244.75 942.15
coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k 86.49 97.90 620.58 73.88 15.18 54.78
maxvit_base_tf_384.in1k 86.29 97.80 101.09 119.65 73.80 332.90
maxvit_large_tf_384.in1k 86.23 97.69 70.56 212.03 132.55 445.84
maxvit_small_tf_512.in1k 86.10 97.76 88.63 69.13 67.26 383.77
maxvit_tiny_tf_512.in1k 85.67 97.58 144.25 31.05 33.49 257.59
maxvit_small_tf_384.in1k 85.54 97.46 188.35 69.02 35.87 183.65
maxvit_tiny_tf_384.in1k 85.11 97.38 293.46 30.98 17.53 123.42
maxvit_large_tf_224.in1k 84.93 96.97 247.71 211.79 43.68 127.35
coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k 84.90 96.96 1025.45 41.72 8.11 40.13
maxvit_base_tf_224.in1k 84.85 96.99 358.25 119.47 24.04 95.01
maxxvit_rmlp_small_rw_256.sw_in1k 84.63 97.06 575.53 66.01 14.67 58.38
coatnet_rmlp_2_rw_224.sw_in1k 84.61 96.74 625.81 73.88 15.18 54.78
maxvit_rmlp_small_rw_224.sw_in1k 84.49 96.76 693.82 64.90 10.75 49.30
maxvit_small_tf_224.in1k 84.43 96.83 647.96 68.93 11.66 53.17
maxvit_rmlp_tiny_rw_256.sw_in1k 84.23 96.78 807.21 29.15 6.77 46.92
coatnet_1_rw_224.sw_in1k 83.62 96.38 989.59 41.72 8.04 34.60
maxvit_tiny_rw_224.sw_in1k 83.50 96.50 1100.53 29.06 5.11 33.11
maxvit_tiny_tf_224.in1k 83.41 96.59 1004.94 30.92 5.60 35.78
coatnet_rmlp_1_rw_224.sw_in1k 83.36 96.45 1093.03 41.69 7.85 35.47
maxxvitv2_nano_rw_256.sw_in1k 83.11 96.33 1276.88 23.70 6.26 23.05
maxxvit_rmlp_nano_rw_256.sw_in1k 83.03 96.34 1341.24 16.78 4.37 26.05
maxvit_rmlp_nano_rw_256.sw_in1k 82.96 96.26 1283.24 15.50 4.47 31.92
maxvit_nano_rw_256.sw_in1k 82.93 96.23 1218.17 15.45 4.46 30.28
coatnet_bn_0_rw_224.sw_in1k 82.39 96.19 1600.14 27.44 4.67 22.04
coatnet_0_rw_224.sw_in1k 82.39 95.84 1831.21 27.44 4.43 18.73
coatnet_rmlp_nano_rw_224.sw_in1k 82.05 95.87 2109.09 15.15 2.62 20.34
coatnext_nano_rw_224.sw_in1k 81.95 95.92 2525.52 14.70 2.47 12.80
coatnet_nano_rw_224.sw_in1k 81.70 95.64 2344.52 15.14 2.41 15.41
maxvit_rmlp_pico_rw_256.sw_in1k 80.53 95.21 1594.71 7.52 1.85 24.86

2023年1月11日

  • 更新ConvNeXt ImageNet-12k预训练系列,添加两个新微调权重(以及pre FT .in12k 标签)
    • convnext_nano.in12k_ft_in1k - 224分辨率82.3,288分辨率82.9(之前已发布)
    • convnext_tiny.in12k_ft_in1k - 84.2 @ 224, 84.5 @ 288
    • convnext_small.in12k_ft_in1k - 85.2 @ 224, 85.3 @ 288

2023年1月6日

  • 终于开始添加--model-kwargs--opt-kwargs到脚本中,以便将罕见参数直接从命令行传递到模型类
    • train.py /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silu
    • train.py /imagenet --model vit_base_patch16_clip_224 --img-size 240 --amp --model-kwargs img_size=240 patch_size=12
  • 清理一些常用模型,以更好地支持参数传递和与模型配置合并,还有更多要来。

2023年1月5日

2022年12月23日 🎄☃

  • 添加从 https://github.com/google-research/big_vision (查看论文https://arxiv.org/abs/2212.08013) 中获取的 FlexiViT 模型和权重
    • 注意:当前在模型创建时静态调整大小,动态实时/训练补丁大小采样仍在进行中
  • 现在更新了许多更多模型到多权重,可通过HF hub下载(convnext, efficientnet, mobilenet, vision_transformer*, beit)
  • 添加更多模型预训练标记和调整,一些模型名称已更改(正在处理弃用翻译,请当前使用master分支的DEV分支,稳定使用请使用0.6.x版本)
  • 更多 ImageNet-12k(22k的子集)预训练模型正在出现
    • efficientnet_b5.in12k_ft_in1k - 85.9 @ 448x448
    • vit_medium_patch16_gap_384.in12k_ft_in1k - 85.5 @ 384x384
    • vit_medium_patch16_gap_256.in12k_ft_in1k - 84.5 @ 256x256
    • convnext_nano.in12k_ft_in1k - 82.9 @ 288x288

2022年12月8日

  • vision_transformer.py 添加 ‘EVA l’,MAE 风格的 ViT-L/14 MIM 预训练,使用 EVA-CLIP 目标,在 ImageNet-1k 上进行微调(其中一些使用 ImageNet-22k 间的中间结果)
模型 top1 param_count gmac macts hub
eva_large_patch14_336.in22k_ft_in22k_in1k 89.2 304.5 191.1 270.2 链接
eva_large_patch14_336.in22k_ft_in1k 88.7 304.5 191.1 270.2 链接
eva_large_patch14_196.in22k_ft_in22k_in1k 88.6 304.1 61.6 63.5 链接
eva_large_patch14_196.in22k_ft_in1k 87.9 304.1 61.6 63.5 链接

2022年12月6日

  • beit.py 添加 ‘EVA g’,BEiT 风格的 ViT-g/14 模型权重,包括 MIM 预训练和 CLIP 预训练
模型 top1 param_count gmac macts hub
eva_giant_patch14_560.m30m_ft_in22k_in1k 89.8 1014.4 1906.8 2577.2 链接
eva_giant_patch14_336.m30m_ft_in22k_in1k 89.6 1013 620.6 550.7 链接
eva_giant_patch14_336.clip_ft_in1k 89.4 1013 620.6 550.7 链接
eva_giant_patch14_224.clip_ft_in1k 89.1 1012.6 267.2 192.6 链接

2022年12月5日

  • 支持多权重的预发布版本(0.8.0dev0)现已发布。使用pip install --pre timm进行安装。
    • vision_transformer、maxvit、convnext 是首批支持该特性的三个模型实现。
    • 模型名称正在更改(之前的 _21k 等函数将合并),仍在处理弃用处理问题。
    • 可能会出现错误,但需要反馈,请尝试使用。
    • 如需稳定性,请使用 0.6.x PyPI 版本或从0.6.x 分支克隆。
  • 在训练/验证/推理/基准测试中新增了对 PyTorch 2.0 编译的支持,使用--torchcompile参数。
  • 推理脚本允许用户更灵活地控制输出,选择 k 作为顶级索引 + prob json,csv 或 parquet 输出。
  • 添加了从 LAION-2B 和原始 OpenAI CLIP 模型中获得的完整的微调 CLIP 图像塔权重。
模型 top1 param_count gmac macts hub
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k 88.6 632.5 391 407.5 链接
vit_large_patch14_clip_336.openai_ft_in12k_in1k 88.3 304.5 191.1 270.2 链接
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k 88.2 632 167.4 139.4 链接
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k 88.2 304.5 191.1 270.2 链接
vit_large_patch14_clip_224.openai_ft_in12k_in1k 88.2 304.2 81.1 88.8 链接
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k 87.9 304.2 81.1 88.8 链接
vit_large_patch14_clip_224.openai_ft_in1k 87.9 304.2 81.1 88.8 链接
vit_large_patch14_clip_336.laion2b_ft_in1k 87.9 304.5 191.1 270.2 链接
vit_huge_patch14_clip_224.laion2b_ft_in1k 87.6 632 167.4 139.4 链接
vit_large_patch14_clip_224.laion2b_ft_in1k 87.3 304.2 81.1 88.8 链接
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k 87.2 86.9 55.5 101.6 链接
vit_base_patch16_clip_384.openai_ft_in12k_in1k 87 86.9 55.5 101.6 链接
vit_base_patch16_clip_384.laion2b_ft_in1k 86.6 86.9 55.5 101.6 链接
vit_base_patch16_clip_384.openai_ft_in1k 86.2 86.9 55.5 101.6 链接
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k 86.2 86.6 17.6 23.9 链接
vit_base_patch16_clip_224.openai_ft_in12k_in1k 85.9 86.6 17.6 23.9 链接
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k 85.8 88.3 17.9 23.9 链接
vit_base_patch16_clip_224.laion2b_ft_in1k 85.5 86.6 17.6 23.9 链接
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k 85.4 88.3 13.1 16.5 链接
vit_base_patch16_clip_224.openai_ft_in1k 85.3 86.6 17.6 23.9 链接
vit_base_patch32_clip_384.openai_ft_in12k_in1k 85.2 88.3 13.1 16.5 链接
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k 83.3 88.2 4.4 5 链接
vit_base_patch32_clip_224.laion2b_ft_in1k 82.6 88.2 4.4 5 链接
vit_base_patch32_clip_224.openai_ft_in1k 81.9 88.2 4.4 5 链接
  • MaxViT Tensorflow 权重的移植,来源于官方实现https://github.com/google-research/maxvit
    • 在21k微调权重中,缩放后的384/512有所下降,可能细节缺失,但21k的FT确实对小预处理很敏感
模型 top1 param_count gmac macts hub
maxvit_xlarge_tf_512.in21k_ft_in1k 88.5 475.8 534.1 1413.2 链接
maxvit_xlarge_tf_384.in21k_ft_in1k 88.3 475.3 292.8 668.8 链接
maxvit_base_tf_512.in21k_ft_in1k 88.2 119.9 138 704 链接
maxvit_large_tf_512.in21k_ft_in1k 88 212.3 244.8 942.2 链接
maxvit_large_tf_384.in21k_ft_in1k 88 212 132.6 445.8 链接
maxvit_base_tf_384.in21k_ft_in1k 87.9 119.6 73.8 332.9 链接
maxvit_base_tf_512.in1k 86.6 119.9 138 704 链接
maxvit_large_tf_512.in1k 86.5 212.3 244.8 942.2 链接
maxvit_base_tf_384.in1k 86.3 119.6 73.8 332.9 链接
maxvit_large_tf_384.in1k 86.2 212 132.6 445.8 链接
maxvit_small_tf_512.in1k 86.1 69.1 67.3 383.8 链接
maxvit_tiny_tf_512.in1k 85.7 31 33.5 257.6 链接
maxvit_small_tf_384.in1k 85.5 69 35.9 183.6 链接
maxvit_tiny_tf_384.in1k 85.1 31 17.5 123.4 链接
maxvit_large_tf_224.in1k 84.9 211.8 43.7 127.4 链接
maxvit_base_tf_224.in1k 84.9 119.5 24 95 链接
maxvit_small_tf_224.in1k 84.4 68.9 11.7 53.2 链接
maxvit_tiny_tf_224.in1k 83.4 30.9 5.6 35.8 链接

2022年10月15日

  • 训练和验证脚本的增强
  • 支持非 GPU(即 CPU)设备
  • 训练脚本可兼容 SLURM
  • 支持 HF 数据集(通过 ReaderHfds)
  • TFDS/WDS 数据加载改进(针对分布式使用的样本填充/包装修复针对样本计数估计)
  • 通道数不等于3,不支持脚本/加载器
  • Adan优化器
  • 可以通过参数启用每步学习率调度
  • 数据集“parsers”更名为“readers”,更符合用途描述
  • AMP参数已更改,使用APEx通过--amp-impl apex,支持bfloat16通过--amp-dtype bfloat16
  • 主分支切换到0.7.x版本,0.6x分支用于仅添加稳定版本
  • master分支更名为main分支

2022年10月10日

  • maxxvit系列中增加了更多权重,包括基于ConvNeXt块的第一次coatnext和maxxvit实验
    • coatnext_nano_rw_224 - 224像素处达到82.0(G) — (使用ConvNeXt卷积块,无BatchNorm)
    • maxxvit_rmlp_nano_rw_256 - 256像素处达到83.0,320像素处达到83.7(G) — (使用ConvNeXt卷积块,无BN)
    • maxvit_rmlp_small_rw_224 - 224像素处达到84.5,320像素处达到85.1(G)
    • maxxvit_rmlp_small_rw_256 - 256像素处达到84.6,288像素处达到84.9(G) — 可能训练得更好,超参数需要调整(使用ConvNeXt块,无BN)
    • coatnet_rmlp_2_rw_224 - 224像素处达到84.6,320像素处达到85(T)
    • 注意:官方MaxVit权重(在1k中)已发布于https://github.com/google-research/maxvit — 由于我的实现是独立于他们创建的,并且有一些小的差异,以及整个TF same padding功能,因此需要一些额外的工作来实现和适应。

2022年9月23日

  • 支持LAION-2B CLIP图像塔作为微调或特征的自定义预训练骨干(无分类器)
    • vit_base_patch32_224_clip_laion2b
    • vit_large_patch14_224_clip_laion2b
    • vit_huge_patch14_224_clip_laion2b
    • vit_giant_patch14_224_clip_laion2b

2022年9月7日

  • Hugging Face timm 文档 主页现在存在,未来可在这里查找更多
  • https://github.com/microsoft/unilm/tree/master/beit2 添加 BEiT-v2 的基础和大型 224x224 模型的权重
  • maxxvit 系列中添加更多权重,包括一个 pico 版本(7.5M 个参数,1.9 GMACs)和两个 tiny 版本
    • maxvit_rmlp_pico_rw_256 - 256 的 80.5,320 的 81.3(T)
    • maxvit_tiny_rw_224 - 224 的 83.5(G)
    • maxvit_rmlp_tiny_rw_256 - 256 的 84.2,320 的 84.8(T)

2022年8月29日

  • MaxVit 窗口大小默认与 img_size 成比例缩放。添加支持此功能的新的 RelPosMlp MaxViT 权重
    • maxvit_rmlp_nano_rw_256 - 256 的 83.0,320 的 83.6(T)

2022年8月26日

2022年8月15日

  • 添加了ConvNeXt atto权重
    • convnext_atto - 75.7 @ 224, 77.0 @ 288
    • convnext_atto_ols - 75.9 @ 224, 77.2 @ 288

2022年8月5日

  • 更多定制的ConvNeXt小模型定义和权重
    • convnext_femto - 77.5 @ 224, 78.7 @ 288
    • convnext_femto_ols - 77.9 @ 224, 78.9 @ 288
    • convnext_pico - 79.5 @ 224, 80.4 @ 288
    • convnext_pico_ols - 79.5 @ 224, 80.5 @ 288
    • convnext_nano_ols - 80.9 @ 224, 81.6 @ 288
  • 更新EdgeNeXt以改进ONNX导出,添加新的基变体和原始权重(https://github.com/mmaaz60/EdgeNeXt

2022年7月28日

  • 添加了新的DeiT-III Medium (宽度=512,深度=12,头数=8)模型权重。感谢Hugo Touvron

2022年7月27日

  • 所有运行基准和验证结果csv文件均已更新至最新!
  • 添加了一些额外的权重和模型定义。
    • darknetaa53 - 79.8 @ 256, 80.5 @ 288
    • convnext_nano - 80.8 @ 224, 81.5 @ 288
    • cs3sedarknet_l - 81.2 @ 256, 81.8 @ 288
    • cs3darknet_x - 81.8 @ 256, 82.2 @ 288
    • cs3sedarknet_x - 82.2 @ 256, 82.7 @ 288
    • cs3edgenet_x - 82.2 @ 256, 82.7 @ 288
    • cs3se_edgenet_x - 82.8 @ 256, 83.5 @ 320
  • cs3* 上述权重均是在具有 bits_and_tpu 分支的TPU上训练的。感谢TRC计划!
  • 为ConvNeXt添加了输出步长为8和16的支持(膨胀因子)。
  • 解决了deit3模型无法调整位置嵌入的问题。
  • 版本0.6.7 PyPi发布(包含自0.6.5以来的上述错误修复和新权重)。

2022年7月8日

更多模型,更多修复。

  • 添加了官方研究模型(带权重)。
  • 我的模型。
    • 应要求添加了小 ResNet 定义,包括基本和瓶颈(resnet10和resnet14)的1块重复。
    • 重构了 CspNet,采用dataclass配置,简化了CrossStage3 (cs3) 选项。这些更接近YOLO-v5+骨干定义。
    • 对相对位置VIT进行了更多调整。训练了两个 srelpos(共享相对位置)模型,以及一个带有类别标记的中型模型。
    • 为EdgeNeXt添加了一种交替的下采样模式,并训练了一个 small 模型。比原来的small更好,但不是他们的新USI训练权重。
  • 我的自己的模型权重结果(全部为ImageNet-1k训练)。
    • resnet10t - 66.5 @ 176, 68.3 @ 224
    • resnet14t - 71.3 @ 176, 72.3 @ 224
    • resnetaa50 - 80.6 @ 224 , 81.6 @ 288
    • darknet53 - 80.0 @ 256, 80.5 @ 288
    • cs3darknet_m - 77.0 @ 256, 77.6 @ 288
    • cs3darknet_focus_m - 76.7 @ 256, 77.3 @ 288
    • cs3darknet_l - 80.4 @ 256, 80.9 @ 288
    • cs3darknet_focus_l - 80.3 @ 256, 80.9 @ 288
    • vit_srelpos_small_patch16_224 - 81.1 @ 224, 82.1 @ 320
    • vit_srelpos_medium_patch16_224 - 82.3 @ 224, 83.1 @ 320
    • vit_relpos_small_patch16_cls_224 - 82.6 @ 224, 83.6 @ 320
    • edgnext_small_rw - 79.6 @ 224, 80.4 @ 320
  • cs3darknetvit_*relpos 上述权重均是在TRC计划的帮助下在TPU上训练的!其余的都在过热的GPU上训练。
  • 验证了Hugging Face Hub支持修复,演示笔记本待定。
  • 可以通过外部(即本地磁盘)加载预训练权重/配置,支持头部适配。
  • timm 数据集/读取器的图像扩展添加了支持。参阅 (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103)
  • 默认使用 ConvNeXt LayerNorm 实现以 F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2) 方式通过 LayerNorm2d 在所有情况下使用。
    • 在某些硬件上(例如 Ampere 配置 CL)略慢于之前的自定义实现,但在更广泛的硬件和 PyTorch 版本范围内整体回归较少。
    • 之前实现以 LayerNormExp2d 的形式存在于 models/layers/norm.py 中。
  • 大量错误修复。
  • 目前正在测试即将发布的 PyPi 0.6.x 版本。
  • LeViT 预训练大型模型仍为工作进行中,它们在没有蒸馏的情况下难以/无法很好训练。是时候添加蒸馏支持了吗(终于)?
  • ImageNet-22k 权重训练和微调正在进行中,正在缓慢地进行多权重支持的工作...

2022年5月13日

  • https://github.com/microsoft/Swin-Transformer 添加了官方 Swin-V2 模型和权重。已清理以支持 torchscript。
  • 对现有的 timm Swin-V2-CR 实现进行了一些重构,可能还会进行一些工作以使部分实现更接近官方版本并决定是否要合并一些方面。
  • 更多的视觉 Transformer 相关的相对位置/残差后规范化实验(所有都是在 TRC 程序的帮助下在 TPU 上训练的)
    • vit_relpos_small_patch16_224 - 224 处 81.5 分,320 处 82.5 分 — 相对位置,层缩放,没有类标记,平均池化
    • vit_relpos_medium_patch16_rpn_224 - 224 处 82.3 分,320 处 83.1 分 — 相对位置 + 残差后规范化,没有类标记,平均池化
    • vit_relpos_medium_patch16_224 - 224 处 82.5 分,320 处 83.3 分 — 相对位置,层缩放,没有类标记,平均池化
    • vit_relpos_base_patch16_gapcls_224 - 224 处 82.8 分,320 处 83.9 分 — 相对位置,层缩放,类标记,平均池化(错误操作)
  • 将 512 维,8 头的‘中等’ViT 模型变体恢复到生活状态(在 2020 年用于在 DeiT 小模型之前的第一个 ViT 实现之后)
  • 添加 ViT 相对位置支持,以便在现有实现和一些官方 Swin-V2 实现的添加之间切换,用于未来的试验
  • Sequencer2D 实现(《arXiv:2205.01972》)通过作者(https://github.com/okojoalg)的 PR 添加。

2022年5月2日

  • 将视觉 Transformer 相对位置Experiment(Swin-V2 log-coord)(vision_transformer_relpos.py)和残差后规范化分支(来自 Swin-V2)(vision_transformer*.py)添加到实验中
    • vit_relpos_base_patch32_plus_rpn_256 - 256的79.5,320的80.6 — 相对位置 + 扩展宽度 + 扩展后归一化,无类别标记,平均池化
    • vit_relpos_base_patch16_224 - 224的82.5,320的83.6 — 相对位置,层比例,无类别标记,平均池化
    • vit_base_patch16_rpn_224 - 224的82.3 — 相对位置 + 扩展后归一化,无类别标记,平均池化
  • 视觉Transformer重构,移除了仅在初始vit中使用并且在更新预训练后很少使用的表示层(例如 如何训练你的ViT
  • vit_*模型支持移除类别标记,使用全局平均池,使用fc_norm(借鉴beit,mae)。

2022年4月22日

  • timm模型现在已正式支持fast.ai!恰逢新的实用深度学习课程。已更新timmdocs文档链接至timm.fast.ai
  • TPU训练的系列中增加了两个模型权重。一些In22k预训练仍在进行中。
    • seresnext101d_32x8d - 83.69 @ 224, 84.35 @ 288
    • seresnextaa101d_32x8d(使用AvgPool2d抗锯齿)- 224的83.85,288的84.57

2022年3月23日

  • 在基础vit模型中增加了ParallelBlockLayerScale选项,以支持关于ViT的三个要点中的模型配置
  • convnext_tiny_hnf(头部归一化首先)权重与(近乎)A2配方训练,Top-1达到82.2%,经过更多轮数训练可以达到更好。

2022年3月21日

  • 合并了 `norm_norm_norm`。 重要 由于此次更新可能会使即将到来的 0.6.x 版本的 master 分支在一段时间内不稳定。如需稳定性,可以继续使用 0.5.x 或之前的 0.5.x 版本。
  • 重大的权重更新(所有 TPU 训练)如该 发布 中所述
    • regnety_040 - 82.3 @ 224, 82.96 @ 288
    • regnety_064 - 83.0 @ 224, 83.65 @ 288
    • regnety_080 - 83.17 @ 224, 83.86 @ 288
    • regnetv_040 - 82.44@224, 83.18@288 (timm 预激活)
    • regnetv_064 - 83.1@224, 83.71@288 (timm 预激活)
    • regnetz_040 - 83.67 @ 256, 84.25 @ 320
    • regnetz_040h - 83.77@256, 84.5@320 (头部添加额外全连接层)
    • resnetv2_50d_gn - 80.8@224, 81.96@288 (预激活 GroupNorm)
    • resnetv2_50d_evos 80.77@224, 82.04@288 (预激活 EvoNormS)
    • regnetz_c16_evos - 81.9@256, 82.64@320 (EvoNormS)
    • regnetz_d8_evos - 83.42@256, 84.04@320 (EvoNormS)
    • xception41p - 82@299 (timm 预激活)
    • xception65 - 83.17 @ 299
    • xception65p - 83.14@299 (timm 预激活)
    • resnext101_64x4d - 82.46 @ 224, 83.16 @ 288
    • seresnext101_32x8d - 83.57 @ 224, 84.270 @ 288
    • resnetrs200 - 83.85 @ 256, 84.44 @ 320
  • 修复了 HuggingFace hub 支持,并为预训练模型定义和权重提供替代的“配置来源”(即将支持通用本地文件/远程 URL)
  • 添加了 SwinTransformer-V2 实现。由 Christoph Reich 提出。由于我的训练实验和模型更改正在进行中,因此预期会有兼容性问题。
  • https://github.com/microsoft/Cream/tree/main/AutoFormerV2 添加了 Swin-S3 (AutoFormerV2) 模型和权重
  • https://github.com/apple/ml-cvnets 调整了 MobileViT 模型和权重
  • https://github.com/sail-sg/poolformer 调整了 PoolFormer 模型和权重
  • https://github.com/sail-sg/volo 调整了 VOLO 模型和权重
  • 对非 BatchNorm 归一化层(如 EvoNorm、FilterResponseNorm、GroupNorm 等)进行了大量实验
  • 增强对多个模型的支持,特别是 EfficientNet/MobileNetV3、RegNet 和对齐 Xception 的替代 norm + act(“NormAct”)层
  • 向 EfficientNet 家族添加了分组卷积支持
  • 向所有模型添加了“分组匹配”API,允许对模型参数进行分组,以便应用“逐层”学习率衰减,并在学习率调度器中添加了学习率缩放
  • 向许多模型添加了梯度检查点支持
  • 向所有模型添加了 `forward_head(x, pre_logits=False)` 函数,允许分别调用 forward_features + forward_head
  • 所有视觉 Transformer 和视觉 MLP 模型更新为从 forward_features 返回非池化/非标记选择的特征,以与 CNN 模型保持一致,现在在 forward_head 中应用标记选择或池化

2022年2月2日

  • Chris Hughes在昨日发布的博客中详尽地介绍了他的timm应用程序。值得一看。PyTorch图像模型timm入门指南:实践者的指南
  • 我正在准备将norm_norm_norm分支合并到master(版本0.6.x)中,大约在下周左右。
    • 更改比平常更广泛,可能会破坏某些模型API的使用(旨在实现完全向后兼容)。所以请注意,pip install git+https://github.com/rwightman/pytorch-image-models安装!
    • 0.5.x版本和0.5.x分支将保持稳定,直到问题得到解决。如果您想要稳定的使用,建议暂时使用pypi安装。

2022年1月14日

  • 即将发布版本0.5.4,将推送至pypi。上次pypi更新已有段时间了,风险较高的更改将很快合并到主分支上...
  • 添加了ConvNeXt模型及其官方实现中的权重(https://github.com/facebookresearch/ConvNeXt),以及一些性能调整,与timm功能兼容
  • 尝试训练了几款小型(~1.8-3M参数)/移动优化模型,到目前为止有几点不错,还有更多正在路上...
    • mnasnet_small - 65.6 top-1
    • mobilenetv2_050 - 65.9
    • lcnet_100/075/050 - 72.1 / 68.8 / 63.1
    • semnasnet_075 - 73
    • fbnetv3_b/d/g - 79.1 / 79.7 / 82.0
  • rsomani95添加的TinyNet模型
  • 通过MobileNetV3架构添加LCNet

2023年1月5日

2022年12月23日 🎄☃

  • 添加从 https://github.com/google-research/big_vision (查看论文https://arxiv.org/abs/2212.08013) 中获取的 FlexiViT 模型和权重
    • 注意:当前在模型创建时静态调整大小,动态实时/训练补丁大小采样仍在进行中
  • 现在更新了许多更多模型到多权重,可通过HF hub下载(convnext, efficientnet, mobilenet, vision_transformer*, beit)
  • 添加更多模型预训练标记和调整,一些模型名称已更改(正在处理弃用翻译,请当前使用master分支的DEV分支,稳定使用请使用0.6.x版本)
  • 更多 ImageNet-12k(22k的子集)预训练模型正在出现
    • efficientnet_b5.in12k_ft_in1k - 85.9 @ 448x448
    • vit_medium_patch16_gap_384.in12k_ft_in1k - 85.5 @ 384x384
    • vit_medium_patch16_gap_256.in12k_ft_in1k - 84.5 @ 256x256
    • convnext_nano.in12k_ft_in1k - 82.9 @ 288x288

2022年12月8日

  • vision_transformer.py 添加 ‘EVA l’,MAE 风格的 ViT-L/14 MIM 预训练,使用 EVA-CLIP 目标,在 ImageNet-1k 上进行微调(其中一些使用 ImageNet-22k 间的中间结果)
模型 top1 param_count gmac macts hub
eva_large_patch14_336.in22k_ft_in22k_in1k 89.2 304.5 191.1 270.2 链接
eva_large_patch14_336.in22k_ft_in1k 88.7 304.5 191.1 270.2 链接
eva_large_patch14_196.in22k_ft_in22k_in1k 88.6 304.1 61.6 63.5 链接
eva_large_patch14_196.in22k_ft_in1k 87.9 304.1 61.6 63.5 链接

2022年12月6日

  • beit.py 添加 ‘EVA g’,BEiT 风格的 ViT-g/14 模型权重,包括 MIM 预训练和 CLIP 预训练
模型 top1 param_count gmac macts hub
eva_giant_patch14_560.m30m_ft_in22k_in1k 89.8 1014.4 1906.8 2577.2 链接
eva_giant_patch14_336.m30m_ft_in22k_in1k 89.6 1013 620.6 550.7 链接
eva_giant_patch14_336.clip_ft_in1k 89.4 1013 620.6 550.7 链接
eva_giant_patch14_224.clip_ft_in1k 89.1 1012.6 267.2 192.6 链接

2022年12月5日

  • 支持多权重的预发布版本(0.8.0dev0)现已发布。使用pip install --pre timm进行安装。
    • vision_transformer、maxvit、convnext 是首批支持该特性的三个模型实现。
    • 模型名称正在更改(之前的 _21k 等函数将合并),仍在处理弃用处理问题。
    • 可能会出现错误,但需要反馈,请尝试使用。
    • 如需稳定性,请使用 0.6.x PyPI 版本或从0.6.x 分支克隆。
  • 在训练/验证/推理/基准测试中新增了对 PyTorch 2.0 编译的支持,使用--torchcompile参数。
  • 推理脚本允许用户更灵活地控制输出,选择 k 作为顶级索引 + prob json,csv 或 parquet 输出。
  • 添加了从 LAION-2B 和原始 OpenAI CLIP 模型中获得的完整的微调 CLIP 图像塔权重。
模型 top1 param_count gmac macts hub
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k 88.6 632.5 391 407.5 链接
vit_large_patch14_clip_336.openai_ft_in12k_in1k 88.3 304.5 191.1 270.2 链接
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k 88.2 632 167.4 139.4 链接
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k 88.2 304.5 191.1 270.2 链接
vit_large_patch14_clip_224.openai_ft_in12k_in1k 88.2 304.2 81.1 88.8 链接
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k 87.9 304.2 81.1 88.8 链接
vit_large_patch14_clip_224.openai_ft_in1k 87.9 304.2 81.1 88.8 链接
vit_large_patch14_clip_336.laion2b_ft_in1k 87.9 304.5 191.1 270.2 链接
vit_huge_patch14_clip_224.laion2b_ft_in1k 87.6 632 167.4 139.4 链接
vit_large_patch14_clip_224.laion2b_ft_in1k 87.3 304.2 81.1 88.8 链接
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k 87.2 86.9 55.5 101.6 链接
vit_base_patch16_clip_384.openai_ft_in12k_in1k 87 86.9 55.5 101.6 链接
vit_base_patch16_clip_384.laion2b_ft_in1k 86.6 86.9 55.5 101.6 链接
vit_base_patch16_clip_384.openai_ft_in1k 86.2 86.9 55.5 101.6 链接
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k 86.2 86.6 17.6 23.9 链接
vit_base_patch16_clip_224.openai_ft_in12k_in1k 85.9 86.6 17.6 23.9 链接
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k 85.8 88.3 17.9 23.9 链接
vit_base_patch16_clip_224.laion2b_ft_in1k 85.5 86.6 17.6 23.9 链接
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k 85.4 88.3 13.1 16.5 链接
vit_base_patch16_clip_224.openai_ft_in1k 85.3 86.6 17.6 23.9 链接
vit_base_patch32_clip_384.openai_ft_in12k_in1k 85.2 88.3 13.1 16.5 链接
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k 83.3 88.2 4.4 5 链接
vit_base_patch32_clip_224.laion2b_ft_in1k 82.6 88.2 4.4 5 链接
vit_base_patch32_clip_224.openai_ft_in1k 81.9 88.2 4.4 5 链接
  • MaxViT Tensorflow 权重的移植,来源于官方实现https://github.com/google-research/maxvit
    • 在21k微调权重中,缩放后的384/512有所下降,可能细节缺失,但21k的FT确实对小预处理很敏感
模型 top1 param_count gmac macts hub
maxvit_xlarge_tf_512.in21k_ft_in1k 88.5 475.8 534.1 1413.2 链接
maxvit_xlarge_tf_384.in21k_ft_in1k 88.3 475.3 292.8 668.8 链接
maxvit_base_tf_512.in21k_ft_in1k 88.2 119.9 138 704 链接
maxvit_large_tf_512.in21k_ft_in1k 88 212.3 244.8 942.2 链接
maxvit_large_tf_384.in21k_ft_in1k 88 212 132.6 445.8 链接
maxvit_base_tf_384.in21k_ft_in1k 87.9 119.6 73.8 332.9 链接
maxvit_base_tf_512.in1k 86.6 119.9 138 704 链接
maxvit_large_tf_512.in1k 86.5 212.3 244.8 942.2 链接
maxvit_base_tf_384.in1k 86.3 119.6 73.8 332.9 链接
maxvit_large_tf_384.in1k 86.2 212 132.6 445.8 链接
maxvit_small_tf_512.in1k 86.1 69.1 67.3 383.8 链接
maxvit_tiny_tf_512.in1k 85.7 31 33.5 257.6 链接
maxvit_small_tf_384.in1k 85.5 69 35.9 183.6 链接
maxvit_tiny_tf_384.in1k 85.1 31 17.5 123.4 链接
maxvit_large_tf_224.in1k 84.9 211.8 43.7 127.4 链接
maxvit_base_tf_224.in1k 84.9 119.5 24 95 链接
maxvit_small_tf_224.in1k 84.4 68.9 11.7 53.2 链接
maxvit_tiny_tf_224.in1k 83.4 30.9 5.6 35.8 链接

2022年10月15日

  • 训练和验证脚本的增强
  • 支持非 GPU(即 CPU)设备
  • 训练脚本可兼容 SLURM
  • 支持 HF 数据集(通过 ReaderHfds)
  • TFDS/WDS 数据加载改进(针对分布式使用的样本填充/包装修复针对样本计数估计)
  • 通道数不等于3,不支持脚本/加载器
  • Adan优化器
  • 可以通过参数启用每步学习率调度
  • 数据集“parsers”更名为“readers”,更符合用途描述
  • AMP参数已更改,使用APEx通过--amp-impl apex,支持bfloat16通过--amp-dtype bfloat16
  • 主分支切换到0.7.x版本,0.6x分支用于仅添加稳定版本
  • master分支更名为main分支

2022年10月10日

  • maxxvit系列中增加了更多权重,包括基于ConvNeXt块的第一次coatnext和maxxvit实验
    • coatnext_nano_rw_224 - 224像素处达到82.0(G) — (使用ConvNeXt卷积块,无BatchNorm)
    • maxxvit_rmlp_nano_rw_256 - 256像素处达到83.0,320像素处达到83.7(G) — (使用ConvNeXt卷积块,无BN)
    • maxvit_rmlp_small_rw_224 - 224像素处达到84.5,320像素处达到85.1(G)
    • maxxvit_rmlp_small_rw_256 - 256像素处达到84.6,288像素处达到84.9(G) — 可能训练得更好,超参数需要调整(使用ConvNeXt块,无BN)
    • coatnet_rmlp_2_rw_224 - 224像素处达到84.6,320像素处达到85(T)
    • 注意:官方MaxVit权重(在1k中)已发布于https://github.com/google-research/maxvit — 由于我的实现是独立于他们创建的,并且有一些小的差异,以及整个TF same padding功能,因此需要一些额外的工作来实现和适应。

2022年9月23日

  • 支持LAION-2B CLIP图像塔作为微调或特征的自定义预训练骨干(无分类器)
    • vit_base_patch32_224_clip_laion2b
    • vit_large_patch14_224_clip_laion2b
    • vit_huge_patch14_224_clip_laion2b
    • vit_giant_patch14_224_clip_laion2b

2022年9月7日

  • Hugging Face timm 文档 主页现在存在,未来可在这里查找更多
  • https://github.com/microsoft/unilm/tree/master/beit2 添加 BEiT-v2 的基础和大型 224x224 模型的权重
  • maxxvit 系列中添加更多权重,包括一个 pico 版本(7.5M 个参数,1.9 GMACs)和两个 tiny 版本
    • maxvit_rmlp_pico_rw_256 - 256 的 80.5,320 的 81.3(T)
    • maxvit_tiny_rw_224 - 224 的 83.5(G)
    • maxvit_rmlp_tiny_rw_256 - 256 的 84.2,320 的 84.8(T)

2022年8月29日

  • MaxVit 窗口大小默认与 img_size 成比例缩放。添加支持此功能的新的 RelPosMlp MaxViT 权重
    • maxvit_rmlp_nano_rw_256 - 256 的 83.0,320 的 83.6(T)

2022年8月26日

2022年8月15日

  • 添加了ConvNeXt atto权重
    • convnext_atto - 75.7 @ 224, 77.0 @ 288
    • convnext_atto_ols - 75.9 @ 224, 77.2 @ 288

2022年8月5日

  • 更多定制的ConvNeXt小模型定义和权重
    • convnext_femto - 77.5 @ 224, 78.7 @ 288
    • convnext_femto_ols - 77.9 @ 224, 78.9 @ 288
    • convnext_pico - 79.5 @ 224, 80.4 @ 288
    • convnext_pico_ols - 79.5 @ 224, 80.5 @ 288
    • convnext_nano_ols - 80.9 @ 224, 81.6 @ 288
  • 更新EdgeNeXt以改进ONNX导出,添加新的基变体和原始权重(https://github.com/mmaaz60/EdgeNeXt

2022年7月28日

  • 添加了新的DeiT-III Medium (宽度=512,深度=12,头数=8)模型权重。感谢Hugo Touvron

2022年7月27日

  • 所有的运行时基准和验证结果CSV文件都已更新!
  • 添加了一些额外的权重和模型定义。
    • darknetaa53 - 79.8 @ 256, 80.5 @ 288
    • convnext_nano - 80.8 @ 224, 81.5 @ 288
    • cs3sedarknet_l - 81.2 @ 256, 81.8 @ 288
    • cs3darknet_x - 81.8 @ 256, 82.2 @ 288
    • cs3sedarknet_x - 82.2 @ 256, 82.7 @ 288
    • cs3edgenet_x - 82.2 @ 256, 82.7 @ 288
    • cs3se_edgenet_x - 82.8 @ 256, 83.5 @ 320
  • cs3* 上述权重均是在具有 bits_and_tpu 分支的TPU上训练的。感谢TRC计划!
  • 为ConvNeXt添加了输出步长为8和16的支持(膨胀因子)。
  • 解决了deit3模型无法调整位置嵌入的问题。
  • 版本0.6.7 PyPi发布(包含自0.6.5以来的上述错误修复和新权重)。

2022年7月8日

更多模型,更多修复。

  • 添加了官方研究模型(带权重)。
  • 我的模型。
    • 应要求添加了小 ResNet 定义,包括基本和瓶颈(resnet10和resnet14)的1块重复。
    • 重构了 CspNet,采用dataclass配置,简化了CrossStage3 (cs3) 选项。这些更接近YOLO-v5+骨干定义。
    • 对相对位置VIT进行了更多调整。训练了两个 srelpos(共享相对位置)模型,以及一个带有类别标记的中型模型。
    • 为EdgeNeXt添加了一种交替的下采样模式,并训练了一个 small 模型。比原来的small更好,但不是他们的新USI训练权重。
  • 我的自己的模型权重结果(全部为ImageNet-1k训练)。
    • resnet10t - 66.5 @ 176, 68.3 @ 224
    • resnet14t - 71.3 @ 176, 72.3 @ 224
    • resnetaa50 - 80.6 @ 224 , 81.6 @ 288
    • darknet53 - 80.0 @ 256, 80.5 @ 288
    • cs3darknet_m - 77.0 @ 256, 77.6 @ 288
    • cs3darknet_focus_m - 76.7 @ 256, 77.3 @ 288
    • cs3darknet_l - 80.4 @ 256, 80.9 @ 288
    • cs3darknet_focus_l - 80.3 @ 256, 80.9 @ 288
    • vit_srelpos_small_patch16_224 - 81.1 @ 224, 82.1 @ 320
    • vit_srelpos_medium_patch16_224 - 82.3 @ 224, 83.1 @ 320
    • vit_relpos_small_patch16_cls_224 - 82.6 @ 224, 83.6 @ 320
    • edgnext_small_rw - 79.6 @ 224, 80.4 @ 320
  • cs3darknetvit_*relpos 上述权重均是在TRC计划的帮助下在TPU上训练的!其余的都在过热的GPU上训练。
  • 验证了Hugging Face Hub支持修复,演示笔记本待定。
  • 可以通过外部(即本地磁盘)加载预训练权重/配置,支持头部适配。
  • 添加了支持改变由timm数据集/解析器扫描的图片扩展名。请参阅(https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103
  • 默认使用 ConvNeXt LayerNorm 实现以 F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2) 方式通过 LayerNorm2d 在所有情况下使用。
    • 在某些硬件上(例如 Ampere 配置 CL)略慢于之前的自定义实现,但在更广泛的硬件和 PyTorch 版本范围内整体回归较少。
    • 之前实现以 LayerNormExp2d 的形式存在于 models/layers/norm.py 中。
  • 大量错误修复。
  • 目前正在测试即将发布的 PyPi 0.6.x 版本。
  • LeViT 预训练大型模型仍为工作进行中,它们在没有蒸馏的情况下难以/无法很好训练。是时候添加蒸馏支持了吗(终于)?
  • ImageNet-22k 权重训练和微调正在进行中,正在缓慢地进行多权重支持的工作...

2022年5月13日

  • https://github.com/microsoft/Swin-Transformer 添加了官方 Swin-V2 模型和权重。已清理以支持 torchscript。
  • 对现有的 timm Swin-V2-CR 实现进行了一些重构,可能还会进行一些工作以使部分实现更接近官方版本并决定是否要合并一些方面。
  • 更多的视觉 Transformer 相关的相对位置/残差后规范化实验(所有都是在 TRC 程序的帮助下在 TPU 上训练的)
    • vit_relpos_small_patch16_224 - 224 处 81.5 分,320 处 82.5 分 — 相对位置,层缩放,没有类标记,平均池化
    • vit_relpos_medium_patch16_rpn_224 - 224 处 82.3 分,320 处 83.1 分 — 相对位置 + 残差后规范化,没有类标记,平均池化
    • vit_relpos_medium_patch16_224 - 224 处 82.5 分,320 处 83.3 分 — 相对位置,层缩放,没有类标记,平均池化
    • vit_relpos_base_patch16_gapcls_224 - 224 处 82.8 分,320 处 83.9 分 — 相对位置,层缩放,类标记,平均池化(错误操作)
  • 将 512 维,8 头的‘中等’ViT 模型变体恢复到生活状态(在 2020 年用于在 DeiT 小模型之前的第一个 ViT 实现之后)
  • 添加 ViT 相对位置支持,以便在现有实现和一些官方 Swin-V2 实现的添加之间切换,用于未来的试验
  • Sequencer2D 实现(《arXiv:2205.01972》)通过作者(https://github.com/okojoalg)的 PR 添加。

2022年5月2日

  • 将视觉 Transformer 相对位置Experiment(Swin-V2 log-coord)(vision_transformer_relpos.py)和残差后规范化分支(来自 Swin-V2)(vision_transformer*.py)添加到实验中
    • vit_relpos_base_patch32_plus_rpn_256 - 256的79.5,320的80.6 — 相对位置 + 扩展宽度 + 扩展后归一化,无类别标记,平均池化
    • vit_relpos_base_patch16_224 - 224的82.5,320的83.6 — 相对位置,层比例,无类别标记,平均池化
    • vit_base_patch16_rpn_224 - 224的82.3 — 相对位置 + 扩展后归一化,无类别标记,平均池化
  • 视觉Transformer重构,移除了仅在初始vit中使用并且在更新预训练后很少使用的表示层(例如 如何训练你的ViT
  • vit_*模型支持移除类别标记,使用全局平均池,使用fc_norm(借鉴beit,mae)。

2022年4月22日

  • timm模型现在已正式支持fast.ai!恰逢新的实用深度学习课程。已更新timmdocs文档链接至timm.fast.ai
  • TPU训练的系列中增加了两个模型权重。一些In22k预训练仍在进行中。
    • seresnext101d_32x8d - 83.69 @ 224, 84.35 @ 288
    • seresnextaa101d_32x8d(使用AvgPool2d抗锯齿)- 224的83.85,288的84.57

2022年3月23日

  • 在基础vit模型中增加了ParallelBlockLayerScale选项,以支持关于ViT的三个要点中的模型配置
  • convnext_tiny_hnf(头部归一化首先)权重与(近乎)A2配方训练,Top-1达到82.2%,经过更多轮数训练可以达到更好。

2022年3月21日

  • 合并了 `norm_norm_norm`。 重要 由于此次更新可能会使即将到来的 0.6.x 版本的 master 分支在一段时间内不稳定。如需稳定性,可以继续使用 0.5.x 或之前的 0.5.x 版本。
  • 重大的权重更新(所有 TPU 训练)如该 发布 中所述
    • regnety_040 - 82.3 @ 224, 82.96 @ 288
    • regnety_064 - 83.0 @ 224, 83.65 @ 288
    • regnety_080 - 83.17 @ 224, 83.86 @ 288
    • regnetv_040 - 82.44@224, 83.18@288 (timm 预激活)
    • regnetv_064 - 83.1@224, 83.71@288 (timm 预激活)
    • regnetz_040 - 83.67 @ 256, 84.25 @ 320
    • regnetz_040h - 83.77@256, 84.5@320 (头部添加额外全连接层)
    • resnetv2_50d_gn - 80.8@224, 81.96@288 (预激活 GroupNorm)
    • resnetv2_50d_evos 80.77@224, 82.04@288 (预激活 EvoNormS)
    • regnetz_c16_evos - 81.9@256, 82.64@320 (EvoNormS)
    • regnetz_d8_evos - 83.42@256, 84.04@320 (EvoNormS)
    • xception41p - 82@299 (timm 预激活)
    • xception65 - 83.17 @ 299
    • xception65p - 83.14@299 (timm 预激活)
    • resnext101_64x4d - 82.46 @ 224, 83.16 @ 288
    • seresnext101_32x8d - 83.57 @ 224, 84.270 @ 288
    • resnetrs200 - 83.85 @ 256, 84.44 @ 320
  • 修复了 HuggingFace hub 支持,并为预训练模型定义和权重提供替代的“配置来源”(即将支持通用本地文件/远程 URL)
  • 添加了 SwinTransformer-V2 实现。由 Christoph Reich 提出。由于我的训练实验和模型更改正在进行中,因此预期会有兼容性问题。
  • https://github.com/microsoft/Cream/tree/main/AutoFormerV2 添加了 Swin-S3 (AutoFormerV2) 模型和权重
  • https://github.com/apple/ml-cvnets 调整了 MobileViT 模型和权重
  • https://github.com/sail-sg/poolformer 调整了 PoolFormer 模型和权重
  • https://github.com/sail-sg/volo 调整了 VOLO 模型和权重
  • 对非 BatchNorm 归一化层(如 EvoNorm、FilterResponseNorm、GroupNorm 等)进行了大量实验
  • 增强对多个模型的支持,特别是 EfficientNet/MobileNetV3、RegNet 和对齐 Xception 的替代 norm + act(“NormAct”)层
  • 向 EfficientNet 家族添加了分组卷积支持
  • 向所有模型添加了“分组匹配”API,允许对模型参数进行分组,以便应用“逐层”学习率衰减,并在学习率调度器中添加了学习率缩放
  • 向许多模型添加了梯度检查点支持
  • 向所有模型添加了 `forward_head(x, pre_logits=False)` 函数,允许分别调用 forward_features + forward_head
  • 所有视觉 Transformer 和视觉 MLP 模型更新为从 forward_features 返回非池化/非标记选择的特征,以与 CNN 模型保持一致,现在在 forward_head 中应用标记选择或池化

2022年2月2日

  • Chris Hughes在昨日发布的博客中详尽地介绍了他的timm应用程序。值得一看。PyTorch图像模型timm入门指南:实践者的指南
  • 我正在准备将norm_norm_norm分支合并到master(版本0.6.x)中,大约在下周左右。
    • 更改比平常更广泛,可能会破坏某些模型API的使用(旨在实现完全向后兼容)。所以请注意,pip install git+https://github.com/rwightman/pytorch-image-models安装!
    • 0.5.x版本和0.5.x分支将保持稳定,直到问题得到解决。如果您想要稳定的使用,建议暂时使用pypi安装。

2022年1月14日

  • 即将发布版本0.5.4,将推送至pypi。上次pypi更新已有段时间了,风险较高的更改将很快合并到主分支上...
  • 添加了ConvNeXt模型及其官方实现中的权重(https://github.com/facebookresearch/ConvNeXt),以及一些性能调整,与timm功能兼容
  • 尝试训练了几款小型(~1.8-3M参数)/移动优化模型,到目前为止有几点不错,还有更多正在路上...
    • mnasnet_small - 65.6 top-1
    • mobilenetv2_050 - 65.9
    • lcnet_100/075/050 - 72.1 / 68.8 / 63.1
    • semnasnet_075 - 73
    • fbnetv3_b/d/g - 79.1 / 79.7 / 82.0
  • rsomani95添加的TinyNet模型
  • 通过MobileNetV3架构添加LCNet
< > GitHub更新