timm documentation

Nhật ký thay đổi

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Nhật ký thay đổi

Ngày 3 tháng 11 năm 2026

  • reset_classifier() và tái tạo checkpoint: các bản sửa lỗi trên ViT, EVA, BEiT, NaFlexViT, RepViT và iFormer Giữ nguyên vị trí chuẩn hóa và cài đặt chưng cất khi xuất / nạp lại mô hình sau khi thay đổi bộ phân loại hoặc pooling. Ngoài ra, sửa lỗi xuất PiT không pooling và EfficientFormerV2 khi tắt chưng cất.
  • NaFlex: sửa vị trí chuẩn hóa cho ViT / EVA trong quá trình chuyển đổi, hỗ trợ căn chỉnh SwiGLU cho các checkpoint DINOv3 / Lingbot, và giữ nguyên các kênh đầu vào grayscale / không phải RGB trong các trình tải dữ liệu.
  • Sửa nhóm phân rã LR theo lớp cho RepViT, HGNet, MViTv2 và các ViT pre-norm, cũng như kích thước đặc trưng của InceptionNeXt với output_stride=8/16.
  • Phiên bản 1.0.31.

Ngày 24 tháng 10 năm 2026

  • forward_intermediates() và prune_intermediate_layers() hiện được hỗ trợ bởi mọi model. Mới được thêm cho CSPNet, NFNet, DLA, DenseNet (#2870, cảm ơn ghaith-mq), CoaT, ConViT, ConvMixer, CrossViT, HRNet, Inception-v3, Inception-ResNet-v2, NASNet, PNASNet, SelecSLS, SENet, Sequencer2d, VGG, Visformer, Xception và Aligned Xception, cùng với prune_intermediate_layers() cho các encoder NaFlexViT và MobileNetV5. CoaT, ConViT, ConvMixer, CrossViT và Visformer có thêm hỗ trợ features_only.
  • prune_intermediate_layers() sửa lỗi
    • prune_head=True sẽ xóa bỏ toàn bộ head (head norm, các lớp pre-logits, attention pooling) để mô hình sau khi cắt bỏ không còn tham số nào không được sử dụng (DDP không có find_unused_parameters), ngoại trừ CoaT, CrossViT và HRNet khi chỉ một số scale / nhánh song song của chúng được giữ lại. Truyền prune_head=False để giữ lại head.
    • Việc cắt tỉa một mô hình phân cấp về một giai đoạn sớm hơn sẽ loại bỏ phần chuẩn hóa cuối cùng và đầu ra có kích thước dành cho giai đoạn cuối, forward_features() kết thúc ở đặc trưng cuối cùng được giữ lại và num_features / head_hidden_size khớp với nó. Cắt tỉa về đặc trưng thân sẽ loại bỏ phần pool thân sau đó.
    • Các bản sửa lỗi cho grad checkpointing, stop_early, việc loại bỏ class token / post network, và TorchScript của các mô hình đã được cắt tỉa / feature_cls='getter' trên nhiều họ mô hình.
  • head_hidden_size là chiều rộng thực tế trước logits (đã pooled) trong tất cả các mô hình, bao gồm cả concat pooling (catavgmax) và sau reset_classifier(). Các loại pooling mà mô hình không thể áp dụng hiện sẽ gây lỗi khi tạo / reset thay vì bị bỏ qua im lặng hoặc thất bại trong forward.
  • Các sửa đổi khác: đầu ra của VOLO với num_classes=0 là embedding của class token (khớp với forward_head(pre_logits=True)), reset_classifier() của vit_pe_core với pool không phải map sẽ loại bỏ attention pool, xuất loại pool qua save_for_hf đọc pooling hiện tại của head, và các checkpoint Swin, SwinV2, DaViT và NextViT không có head (num_classes=0) được nạp lại chính xác.

Ngày 13 tháng 10 năm 2026

  • Quét siêu tham số thông qua sweep.py mới: tìm kiếm lưới / ngẫu nhiên trên bất kỳ đối số nào của train.py, một --config hiệu lực cho mỗi job, chạy trên một nhóm GPU cục bộ và có thể khôi phục. Quét WSD huấn luyện một thân ổn định cho mỗi tổ hợp siêu tham số và phân nhánh các cooldown độc lập từ các checkpoint mốc của nó, so sánh quá trình annealing ở nhiều ngân sách khác nhau với chi phí chỉ bằng một phần nhỏ so với các lần chạy đầy đủ. Xem tài liệu huấn luyện.
  • train.py: --resume auto tiếp tục huấn luyện tại chỗ từ last.pth.tar của chính thí nghiệm (lịch sử checkpoint, model_best và summary.csv vẫn nhất quán), --stop-epoch N dừng mà không thay đổi lịch trình, --save-epochs N [N ...] giữ lại các bản chụp milestone-N.pth.tar, và các giá trị YAML --config được kiểm tra đối chiếu với các đối số của script.
  • Bỏ hỗ trợ PlateauLRScheduler (--sched plateau). Các scheduler của timm là các hàm không trạng thái của epoch hoặc số lần cập nhật, lịch plateau dựa trên metric không bao giờ phù hợp với điều đó và trạng thái của nó không được checkpoint, do đó việc resume chưa bao giờ chính xác. Hãy dùng cosine hoặc wsd.
  • Tài liệu: trang Model API mới, các trang gia đình model được tạo cho từng module model thay thế các trang theo từng model cũ, và các trang tham chiếu dữ liệu / loss / models được mở rộng.
  • Sửa lỗi nhất quán API mô hình: reset_classifier() giữ nguyên pooling hiện tại trong tất cả các mô hình, các đối số constructor không xác định sẽ gây ra TypeError ở mọi nơi, dynamic_img_size của họ Swin, suy giảm lr theo lớp cho LeViT, các tên no_weight_decay không khớp với bất kỳ tham số nào (NesT, SwinV2, XCiT, FocalNet), trạng thái resize được ghi nhận cho tất cả các họ set_input_size.
  • Sửa lỗi: GCViT trộn lẫn các ảnh trong lô khi sử dụng truy vấn toàn cục, kiểm tra điểm dừng gradient cho RDNet và MobileNetV5, kích thước đầu vào kiểm thử cũ của save_for_hf, thay đổi kích thước chữ nhật cho EfficientViT (MSRA), lỗi chuyển đổi ảnh trong ImageDataset (#2846). reparameterize_model đã được chuyển đến timm.models.

Ngày 9 tháng 10 năm 2026

  • Thêm CSPNeXt (RTMDet backbone) cspnext_{tiny,s,m,l,x} với trọng số phân loại ImageNet-1k được chuyển đổi từ OpenMMLab. Cảm ơn Munehiro Kobayashi.
  • Cải tiến optimizer
    • Các bản triển khai Foreach (đa tensor) cho RMSpropTF, LaProp, LAMB, LARS, AdaBelief. Các bước Foreach được chia nhỏ theo kích thước bộ nhớ đệm L2 của thiết bị (dùng TIMM_FOREACH_CHUNK_SIZE để ghi đè).
    • Cắt bỏ cập nhật RMS (clipping_threshold) cho AdamWLegacy / NAdamW, các biến thể NovoGrad tách rời / đã hiệu chỉnh trọng số phân rã (novogradw, novogradc).
    • Sửa lỗi chính xác cho nhiều optimizer, bao gồm việc hiệu chỉnh weight decay với tensor lr được cập nhật in-place, hiện tượng FP16 update bị dừng ở lr nhỏ, xử lý state độ chính xác thấp (Kron, AdaBelief, NovoGrad), và không còn thay đổi p.grad in-place nữa.
    • torch.compile / các bản sửa lỗi CUDA graph cho Adopt, SGDW, AdafactorBV.
    • Tài liệu mới về optimizer, bao gồm cách sử dụng, quy ước đặt tên và các nhóm.
  • Thêm trình lập lịch LR WSD (warmup-stable-decay) (--sched wsd, --lr-decay-fn, --lr-stable-timescale).
  • Sửa lỗi Model EMA cho các mô hình bfloat16 / float16. ModelEmaV3 bfloat16 EMAs sử dụng làm tròn ngẫu nhiên (stochastic rounding) theo mặc định, trong khi các mô hình float16 giữ EMA ở float32.
  • Đổi kích thước mô hình thông qua set_input_size()
    • Mở rộng hỗ trợ cho các mô hình có cửa sổ (MaxViT, CoAtNet, BEiT, EfficientViT-MSRA, relpos ViT, họ Swin).
    • Swin / SwinV2 / SwinV2-CR giữ nguyên tỷ lệ cửa sổ trên lưới của mỗi giai đoạn khi thay đổi kích thước, một cuộc gọi ở kích thước hiện tại giờ là no-op. Hỗ trợ window_size / window_ratio theo từng giai đoạn. Sửa lỗi các mô hình Swin S3 và SwinV2 window16 / window12 thay đổi đầu ra khi gọi ở cùng kích thước.
    • Sửa lỗi NaN trong SwinV2 với kích thước cửa sổ là 1, kích thước đặc trưng giai đoạn lẻ, và resize hybrid ViT trên CUDA / độ chính xác thấp.
  • Xử lý phần dư của tích lũy gradient (#2821), lấy mẫu phân tán / tăng dữ liệu lặp lại trên các tập dữ liệu nhỏ, ghi đè nguồn tiền huấn luyện và thiết lập giáo viên cho chưng cất, train.py với --sched none, và nội suy cắt giữa cho đánh giá với các đầu vào không vuông.
  • Các bản sửa lỗi tương thích xuất ONNX trên các phiên bản PyTorch, các bản sửa lỗi nhất quán dropout, và nhiều bản sửa lỗi khởi tạo meta-device hơn.

Ngày 25 tháng 9 năm 2026

  • Hỗ trợ phân loại đa nhãn
    • Thêm --task multilabel vào train.py / validate.py, được huấn luyện với BCE (MultiLabelClassificationTask). Xem tài liệu huấn luyện để biết chi tiết.
    • Targets có thể là danh sách chỉ số lớp, vector multi-hot dày đặc (--target-format multihot), hoặc một trường nhị phân cho mỗi lớp (--target-key a,b,c), với đường dẫn / vào các trường lồng nhau. Được hỗ trợ bởi các trình đọc hfds, hfids, tfds (khóa đa trường) và wds.
    • Trình nạp dữ liệu Mixup / CutMix và NaFlex hỗ trợ mục tiêu đa nhãn. Label smoothing dịch chuyển mỗi mục tiêu về phía 0.5 và mặc định là 0 cho đa nhãn.
    • Validation báo cáo mAP (mặc định là --eval-metric) cùng với micro, macro và sample F1, với ngưỡng F1 được đặt bởi --multilabel-threshold.
    • Các bộ đánh giá ở cấp độ tập dữ liệu mới tính toán các chỉ số trên toàn bộ tập xác thực xuyên suốt các rank phân tán, loại bỏ phần đệm của bộ lấy mẫu phân tán.
    • Xem bộ sưu tập timm multi-label image datasets trên Hub để có các bộ dữ liệu ví dụ / benchmark hoạt động ngay lập tức.
  • Các tùy chọn loss mới thông qua --loss
    • Các hàm mất mát Poly-1, Two-way, ZLPR và Distribution-Balanced.
    • Trọng số tần suất lớp cho BCE / ASL, được tính từ số lượng nhãn thu thập bởi class_weights.py.
    • ASL hiện đã an toàn với fp16 và mặc định sử dụng phép giảm batchmean
  • Tái cấu trúc RoPE Mở rộng tăng cường tọa độ RoPE chỉ dùng cho huấn luyện (dịch chuyển, nhiễu, thay đổi tỷ lệ) sang các nhúng axial, mixed và MRoPE, chia sẻ các hàm trợ giúp với DINOv3 trong khi giữ nguyên hành vi tăng cường hiện có của nó. Thêm các tùy chọn grid_type và normalize_coords vào các trình xây dựng Fourier / rotary (build_fourier_pos_embed, build_rotary_pos_embed) và các module RoPE axial, cũng như các phần MRoPE có thể cấu hình trong EVA. Hỗ trợ rotate_half trong RotaryEmbedding có đầu ra dạng tuple và biến thể nhà máy cơ sở. Sửa việc chuyển tiếp bố cục xoay trong EVA, NaFlexViT và pooling chú ý MRoPE. Giữ các bộ đệm tần số và tọa độ RoPE không học được ở mức ít nhất float32 trong các mô hình half/bfloat16, và tính các pha RoPE mixed ở float32 dưới autocast. Những sửa đổi độ chính xác này có thể làm thay đổi đầu ra của mô hình độ chính xác thấp. Sửa các nhúng RoPE dạng batch cho lưới pixel và việc thay đổi tỷ lệ hình dạng tham chiếu. DINOv3 với grid_indexing='xy' giờ sẽ hoán đổi các kênh tọa độ như yêu cầu; đầu ra cho các cấu hình trước đây không chính xác này sẽ thay đổi. Làm cho apply_rot_embed, apply_rot_embed_cat và apply_rot_embed_list trả về dtype của từng đầu vào, thực hiện chuyển đổi kiểu sau khi xoay mà không hạ cấp sin/cos trước đó. Gộp hai module RoPE axial lại sau một lớp cơ sở riêng. Các lời gọi hiện có vẫn tương thích, nhưng bộ đệm bands giờ được giữ lại trong cả chế độ có cache và động (rope.bands không còn là None trong chế độ có cache).
    • Mở rộng tăng cường tọa độ RoPE chỉ dùng cho huấn luyện (dịch chuyển, nhiễu, thay đổi tỷ lệ) sang các nhúng trục, hỗn hợp và MRoPE, chia sẻ các hàm trợ giúp với DINOv3 trong khi giữ nguyên hành vi tăng cường hiện có của nó.
    • Thêm các tùy chọn grid_type và normalize_coords vào các trình xây dựng Fourier / rotary (build_fourier_pos_embed, build_rotary_pos_embed) và các module RoPE trục, cùng các phần MRoPE có thể cấu hình trong EVA.
    • Hỗ trợ rotate_half trong RotaryEmbedding có đầu ra dạng tuple và biến thể nhà máy base.
    • Sửa lỗi chuyển tiếp bố cục xoay trong EVA, NaFlexViT và MRoPE attention pooling.
    • Giữ các bộ đệm tần số và tọa độ RoPE không được học ở độ chính xác ít nhất là float32 trong các mô hình half/bfloat16, và tính toán các pha RoPE hỗn hợp ở float32 dưới autocast. Những sửa đổi độ chính xác này có thể làm thay đổi đầu ra của mô hình độ chính xác thấp.
    • Sửa lỗi nhúng RoPE theo lô cho lưới pixel và việc đổi tỷ lệ hình dạng tham chiếu. DINOv3 grid_indexing='xy' hiện hoán đổi các kênh tọa độ theo yêu cầu; kết quả đầu ra cho các cấu hình trước đây không chính xác này sẽ thay đổi.
    • Làm cho apply_rot_embed, apply_rot_embed_cat và apply_rot_embed_list trả về dtype của từng đầu vào, thực hiện chuyển đổi kiểu sau khi xoay mà không giảm kiểu sin/cos trước đó.
    • Gộp hai module RoPE trục vào một lớp cơ sở riêng. Các lời gọi hiện có vẫn tương thích, nhưng bộ đệm bands giờ được giữ lại ở cả chế độ có cache và chế độ động (rope.bands không còn là None ở chế độ có cache).
  • Sửa lỗi chuyển đổi chế độ train/eval và thay đổi dtype cho LeViT và các mô hình liên quan (EfficentFormer*, EfficientViT-MSRA, TinyViT) có attention biases được cache.

Ngày 22 tháng 9 năm 2026

  • Thêm trọng số tháp thị giác của Qwen-Drive-1.0-4B.
  • Sửa lại việc tái sử dụng/đồng bộ hóa luồng của prefetch loader và AugMix cho các hình ảnh không vuông và đơn dải.
  • Sửa lỗi tỷ lệ học cho conv trong AdaMuon, cắt trong AdafactorBigVision, lịch sử gradient trong MARS và nạp checkpoint trong Kron.
  • Sửa các bộ nhớ đệm bias chú ý đánh giá đã cũ, metadata tính năng của mô hình đã cắt tỉa, padding cho max-pool có giãn, và chế độ gradient của loss bất đối xứng.
  • Phiên bản 1.0.30

Ngày 10-11 tháng 9 năm 2026

  • Thêm các biến thể bộ phân loại và bộ mã hóa ViT cho Qwen3-VL / Qwen3.5 / Qwen3.8, bao gồm các bộ phân loại có và không có bộ hợp nhất không gian bản địa.
  • Thêm ViTs của Sapiens2 với hỗ trợ EVA và NaFlexViT. Cả hai mô hình bổ sung đều bao gồm trọng lượng Hub timm gốc. Cảm ơn Yonghye Kwon.
  • Thêm iFormer với trọng số Hub timm gốc. Cảm ơn Ryan Hou.
  • Thêm EfficientViM với trọng số Hub timm gốc. Cảm ơn smellslikeml.
  • Thêm bộ phân loại và bộ mã hóa ViT cho DeepSeek-V4 / V4.1 với trọng lượng Hub timm gốc. Cảm ơn Yonghye Kwon.
  • Chuyển đổi mặc định của NaFlex SigLIP position interpolation, lựa chọn kích thước đầu vào của inference.py, và cải thiện việc phân tích cú pháp của --model-kwargs.
  • Sửa lỗi xây dựng meta-device và hỗ trợ nhà máy device/dtype cho một số mô hình; di chuyển các bài kiểm tra config sang meta để CI nhanh hơn, bao phủ ngữ cảnh meta.

Ngày 27 tháng 8 năm 2026

  • Thêm mô hình và trọng số LowFormer
  • Sửa hoặc hợp nhất một loạt các lỗi thực sự nhưng nhỏ hoặc ít gặp được các tác nhân phát hiện
  • Phiên bản 1.0.29

Ngày 11 tháng 8 năm 2026

  • Thêm định nghĩa mô hình và trọng số được huấn luyện trước cho
  • Thêm lịch trình kích thước ảnh và kích thước lô cho từng lô trong huấn luyện không phải NaFlex, bao gồm các lịch trình độ phân giải tăng dần từ nhỏ đến lớn.
  • Cải thiện NaFlexViT với các mặt nạ chú ý chỉ khóa, lấy mẫu vị trí thân thiện với biên dịch và tiết kiệm bộ nhớ, cùng nội suy biến thể patch được đệm.
  • Cải thiện đường dẫn nhà máy mô hình và xử lý checkpoint; sửa lỗi lấy lại mẫu nhúng vị trí cho token bằng nhau.

Ngày 10 tháng 7 năm 2026

  • Cải thiện trình tối ưu hóa torch.compile và hỗ trợ tốc độ học tensor.
  • Mở rộng bố cục patch của NaFlexViT (cho NaFlex-CLAP) và hỗ trợ forward_intermediates (đầu vào dict của NaFlex).
  • Tăng cường độ an toàn khi nạp pickle và cải thiện suy luận nhãn tùy chỉnh.
  • Phiên bản 1.0.28

Ngày 27 tháng 5 năm 2026

Ngày 8 tháng 5 năm 2026

  • Phiên bản 1.0.27

Ngày 23 tháng 4 năm 2026

  • Thêm bộ mã hóa ViT của Gemma4 với hỗ trợ pipeline NaFlex (tỷ lệ khung hình/kích thước thay đổi theo từng ảnh). Cảm ơn Yonghye Kwon
  • Hỗ trợ trọng số DINOv3 trong NaFlexVit. Cảm ơn Yonghye Kwon
  • Một số cải tiến cho hành vi lr của phương án dự phòng Muon (AdamW/NadamW)

Ngày 23 tháng 3 năm 2026

  • Cải thiện bảo mật cho việc xử lý điểm kiểm tra pickle. Mặc định tất cả các thao tác tải về sẽ là weights_only=True, thêm safe_global cho ArgParse.
  • Cải thiện xử lý attention mask cho các mô hình và lớp ViT/EVA cốt lõi. Giải quyết các mask kiểu bool, truyền is_causal cho các tác vụ SSL.
  • Sửa lỗi sử dụng token lớp & đăng ký với ViT khi không bật nhúng vị trí.
  • Thêm Patch Representation Refinement (PRR) như một tùy chọn pooling trong ViT. Cảm ơn Sina (https://github.com/sinahmr).
  • Cải thiện tính nhất quán của các chiều output projection / MLP cho các lớp attention pooling.
  • Tối ưu hóa F.SDPA cho mô hình Hiera để cho phép sử dụng kernel Flash Attention.
  • Cảnh báo đã được thêm vào bộ tối ưu hóa SGDP.
  • Phiên bản 1.0.26. Phiên bản bảo trì đầu tiên kể từ khi tôi rời Hugging Face.

23 tháng 2 năm 2026

  • Thêm hỗ trợ huấn luyện chưng cất token vào các wrapper tác vụ chưng cất
  • Loại bỏ một số cách sử dụng torch.jit để chuẩn bị cho việc ngừng hỗ trợ chính thức
  • Cảnh báo được thêm vào bộ tối ưu AdamP
  • Gọi reset_parameters() ngay cả khi khởi tạo trên meta-device để các buffer được khởi tạo với các thủ thuật như init_empty_weights
  • Tinh chỉnh bộ tối ưu Muon để hoạt động với DTensor/FSDP2 (dùng instead of clamp_min, nhánh NS thay thế cho DTensor)
  • Phiên bản 1.0.25

21 tháng 1 năm 2026

  • Compat Break: Sửa sót về bias của QKV so với MLP trong ParallelScalingBlock (& DiffParallelScalingBlock)
    • Không ảnh hưởng đến bất kỳ mô hình timm đã được huấn luyện nào nhưng có thể ảnh hưởng đến việc sử dụng ở các bước tiếp theo.

Ngày 5 & 6 tháng 1 năm 2026

  • Phiên bản 1.0.24
  • Thêm các tệp csv kết quả benchmark mới cho thời gian suy luận trên tất cả các mô hình với các card RTX Pro 6000, 5090 và 4090 sử dụng PyTorch 2.9.1
  • Sửa lỗi module đã di chuyển trong đường dẫn import timm.models.layers đã bị loại bỏ, ảnh hưởng đến các import cũ
  • Phiên bản 1.0.23

30 tháng 12, 2025

12 tháng 12, 2025

  • Thêm mô hình CSATV2 (cảm ơn https://github.com/gusdlf93) — một mô hình nhẹ nhưng có độ phân giải cao với DCT stem & spatial attention. https://huggingface.co/Hyunil/CSATv2
  • Thêm hỗ trợ cho bộ tối ưu AdaMuon và NAdaMuon vào triển khai Muon có sẵn của timm. Có vẻ cạnh tranh hơn so với AdamW khi sử dụng các siêu tham số quen thuộc cho các tác vụ hình ảnh.
  • Dọn dẹp PR cuối năm, hợp nhất các khía cạnh của một số PR mở lâu ngày
  • Nâng cấp các bài kiểm tra đơn vị lên PyTorch 2.9.1 + Python 3.13 ở mức cao nhất, hạ xuống còn PyTorch 1.13 + Python 3.10 ở mức thấp nhất

1 tháng 12, 2025

  • Thêm trừu tượng hóa tác vụ nhẹ, thêm hỗ trợ chưng cất logits và đặc trưng vào script huấn luyện thông qua các tác vụ mới.
  • Xóa hỗ trợ APEX AMP cũ

4 tháng 11, 2025

  • Sửa lỗi khởi tạo của LayerScale / LayerScale2d (giá trị khởi tạo bị bỏ qua), được giới thiệu trong 1.0.21. Cảm ơn https://github.com/Ilya-Fradlin
  • Phiên bản 1.0.22

31 tháng 10, 2025 🎃

  • Cập nhật các tệp csv kết quả của imagenet & biến thể OOD để bao gồm một vài mô hình mới và xác minh tính chính xác trên nhiều phiên bản torch & timm
  • Trọng số của mô hình EfficientNet-X và EfficientNet-H B5 được thêm vào như một phần của quá trình tìm kiếm siêu tham số cho AdamW so với Muon (vẫn đang tiếp tục chạy các thí nghiệm với Muon)

16-20 tháng 10, 2025

  • Thêm một impl của optimizer Muon (dựa trên https://github.com/KellerJordan/Muon) với các tùy chỉnh
    • linh hoạt hơn và xử lý cải tiến cho trọng số conv và các phương án dự phòng cho các hình dạng trọng số không phù hợp để trực giao hóa
    • tăng tốc nhỏ cho các lần lặp NS bằng cách giảm số lần cấp phát bộ nhớ và sử dụng các phép toán (b)add(b)mm đã được hợp nhất
    • mặc định sử dụng các cập nhật AdamW (hoặc NAdamW nếu nesterov=True) khi muon không phù hợp với hình dạng của tham số (hoặc bị loại trừ thông qua cờ nhóm tham số)
    • giống như triển khai torch, chọn từ một số hàm điều chỉnh tỷ lệ LR thông qua adjust_lr_fn
    • chọn từ một số cài đặt sẵn hệ số NS hoặc chỉ định hệ số của riêng bạn thông qua ns_coefficients
  • Hỗ trợ 2 bước đầu tiên của việc khởi tạo mô hình thiết bị ‘meta’
    • Sửa một số ops đã gây lỗi khi tạo dưới ngữ cảnh thiết bị ‘meta’
    • Thêm hỗ trợ tham số kwarg cho nhà máy device & dtype vào tất cả các mô hình và module (bất kỳ thứ gì kế thừa từ nn.Module) trong timm
  • Các trường giấy phép được thêm vào các cfg được huấn luyện trước trong mã
  • Phiên bản 1.0.21

21 tháng 9, 2025

  • Áp lại thẻ trọng số DINOv3 ViT từ lvd_1689m -> lvd1689m để khớp (tương tự với sat_493m -> sat493m)
  • Phiên bản 1.0.20

17 tháng 9, 2025

Ngày 23 tháng 7 năm 2025

  • Thêm phương thức set_input_size() vào các mô hình EVA, được OpenCLIP 3.0.0 sử dụng để cho phép thay đổi kích thước cho các mô hình encoder dựa trên timm.
  • Phiên bản 1.0.18, cần thiết cho các mô hình PE-Core S & T trong OpenCLIP 3.0.0
  • Sửa lỗi đánh máy nhỏ gây mất tương thích với Python 3.9. Bản phát hành vá 1.0.19.

Ngày 21 tháng 7 năm 2025

  • Hỗ trợ ROPE đã được thêm vào NaFlexViT. Tất cả các mô hình được bao phủ bởi EVA base (eva.py) bao gồm EVA, EVA02, Meta PE ViT, timm SBB ViT w/ ROPE, và Naver ROPE-ViT giờ có thể được nạp trong NaFlexViT khi use_naflex=True được truyền vào khi tạo mô hình
  • Thêm nhiều bộ mã hóa PE ViT của Meta, bao gồm các biến thể small/tiny, các biến thể ngôn ngữ có tiling, và nhiều biến thể không gian hơn.
  • PatchDropout đã được sửa với NaFlexViT và cũng với các mô hình EVA (lỗi hồi quy sau khi thêm Naver ROPE-ViT)
  • Sửa thứ tự XY với grid_indexing='xy', ảnh không vuông bị ảnh hưởng khi sử dụng ở chế độ 'xy' (chỉ ROPE-ViT và PE bị ảnh hưởng).

Ngày 7 tháng 7 năm 2025

  • Tinh chỉnh backbone MobileNet-v5 để cải thiện hành vi của Google Gemma 3n (để kết hợp với trọng số chính thức đã cập nhật)
    • Thêm độ chệch thân (bị đặt về 0 trong trọng số đã cập nhật, gây mất tương thích với trọng số cũ)
    • GELU -> GELU (xấp xỉ tanh). Một thay đổi nhỏ để gần hơn với JAX
  • Thêm hai đối số cho hỗ trợ layer-decay, một giá trị kẹp (clamp) tỷ lệ tối thiểu và ngưỡng tỷ lệ ‘không tối ưu hóa’
  • Thêm các biến thể ‘Fp32’ LayerNorm, RMSNorm, SimpleNorm có thể được bật để ép buộc tính toán chuẩn hóa ở float32
  • Một số công việc dọn dẹp kiểu dữ liệu và tham số cho các lớp norm, norm+act đã được thực hiện ở trên
  • Hỗ trợ Naver ROPE-ViT (https://github.com/naver-ai/rope-vit) trong eva.py, thêm module RotaryEmbeddingMixed cho chế độ hỗn hợp, trọng số trên HuggingFace Hub
modelimg_sizetop1top5param_count
vit_large_patch16_rope_mixed_ape_224.naver_in1k22484.8497.122304.4
vit_large_patch16_rope_mixed_224.naver_in1k22484.82897.116304.2
vit_large_patch16_rope_ape_224.naver_in1k22484.6597.154304.37
vit_large_patch16_rope_224.naver_in1k22484.64897.122304.17
vit_base_patch16_rope_mixed_ape_224.naver_in1k22483.89496.75486.59
vit_base_patch16_rope_mixed_224.naver_in1k22483.80496.71286.44
vit_base_patch16_rope_ape_224.naver_in1k22483.78296.6186.59
vit_base_patch16_rope_224.naver_in1k22483.71896.67286.43
vit_small_patch16_rope_224.naver_in1k22481.2395.02221.98
vit_small_patch16_rope_mixed_224.naver_in1k22481.21695.02221.99
vit_small_patch16_rope_ape_224.naver_in1k22481.00495.01622.06
vit_small_patch16_rope_mixed_ape_224.naver_in1k22480.98694.97622.06
  • Một số công việc dọn dẹp các module ROPE, các hàm trợ giúp và việc đăng ký lá cho việc theo dõi FX
  • Chuẩn bị phát hành phiên bản 1.0.17

26 tháng 6 năm 2025

  • Backbone MobileNetV5 (biến thể chỉ có encoder) cho image encoder của Gemma 3n
  • Phiên bản 1.0.16 đã phát hành

Ngày 23 tháng 6 năm 2025

  • Thêm khả năng resize pos embed 2D và factorized dựa trên F.grid_sample cho NaFlexViT. Nhanh hơn khi có nhiều kích thước khác nhau (dựa trên ví dụ của https://github.com/stas-sl).

  • Tăng tốc hơn nữa quá trình resample của patch embed bằng cách thay thế vmap bằng matmul (dựa trên snippet của https://github.com/stas-sl).

  • Thêm 3 checkpoint NaFlexViT native ban đầu được tạo trong quá trình kiểm thử, ImageNet-1k và 3 cấu hình pos embed khác nhau với cùng hparams.

    Mô hìnhĐộ chính xác Top-1Độ chính xác Top-5Số tham số (M)Độ dài chuỗi đánh giá
    naflexvit_base_patch16_par_gap.e300_s576_in1k83.6796.4586.63576
    naflexvit_base_patch16_parfac_gap.e300_s576_in1k83.6396.4186.46576
    naflexvit_base_patch16_gap.e300_s576_in1k83.5096.4686.63576
  • Hỗ trợ gradient checkpointing cho forward_intermediates và sửa một số lỗi checkpointing. Cảm ơn https://github.com/brianhou0208

  • Thêm ‘corrected weight decay’ (https://arxiv.org/abs/2506.02285) như một tùy chọn cho các optimizer AdamW (legacy), Adopt, Kron, Adafactor (BV), Lamb, LaProp, Lion, NadamW, RmsPropTF, SGDW

  • Chuyển đổi các mô hình PE (perception encoder) ViT sang sử dụng trọng số timm gốc thay vì ánh xạ lại theo thời gian thực

  • Sửa lỗi luồng cuda trong bộ nạp trước

Ngày 5 tháng 6 năm 2025

  • Mã nguồn ban đầu của mô hình NaFlexVit. NaFlexVit là một Vision Transformer với các tính năng:
    1. Nén embedding và mã hóa vị trí trong một module duy nhất
    2. Hỗ trợ nhúng patch của nn.Linear trên đầu vào đã được chia patch (từ điển)
    3. Hỗ trợ tỷ lệ khung hình và độ phân giải thay đổi của NaFlex (SigLip-2: https://arxiv.org/abs/2502.14786)
    4. Hỗ trợ kích thước patch biến đổi của FlexiViT (https://arxiv.org/abs/2212.08013)
    5. Hỗ trợ nhúng vị trí phân số/tách nhân của NaViT (https://arxiv.org/abs/2307.06304)
  • Các mô hình vit hiện có trong vision_transformer.py có thể được nạp vào mô hình NaFlexVit bằng cách thêm cờ use_naflex=True vào create_model
    • Một số trọng số bản địa sẽ sớm ra mắt
  • Một pipeline dữ liệu NaFlex hoàn chỉnh có sẵn, cho phép huấn luyện / tinh chỉnh / đánh giá với các hình ảnh có tỷ lệ khung hình / kích thước thay đổi
    • Để bật trong train.py và validate.py hãy thêm đối số --naflex-loader, phải được sử dụng cùng với NaFlexVit
  • Để đánh giá một mô hình ViT (kinh điển) hiện có được nạp trong mô hình NaFlexVit với đường ống dữ liệu NaFlex:
    • python validate.py /imagenet --amp -j 8 --model vit_base_patch16_224 --model-kwargs use_naflex=True --naflex-loader --naflex-max-seq-len 256
  • Quá trình huấn luyện có một số tính năng liên quan đến các đối số bổ sung đáng chú ý
    • Lập luận --naflex-train-seq-lens' chỉ định các độ dài chuỗi cần được chọn ngẫu nhiên cho mỗi batch trong quá trình huấn luyện
    • Lập luận --naflex-max-seq-len đặt độ dài chuỗi đích cho việc xác thực
    • Việc thêm --model-kwargs enable_patch_interpolator=True --naflex-patch-sizes 12 16 24 sẽ kích hoạt việc chọn kích thước patch ngẫu nhiên cho mỗi batch kèm nội suy
    • Tham số --naflex-loss-scale thay đổi chế độ scale loss theo từng batch so với kích thước batch, việc nạp NaFlex của timm thay đổi kích thước batch cho mỗi độ dài chuỗi

Ngày 28 tháng 5 năm 2025

21 tháng 2 năm 2025

  • Đã thêm bộ mã hóa ảnh ViT của SigLIP 2 (https://huggingface.co/collections/timm/siglip-2-67b8e72ba08b09dd97aecaf9)
    • Các phiên bản NaFlex có độ phân giải / tỷ lệ khung hình thay đổi đang trong quá trình phát triển
  • Thêm trọng số ViT ‘SO150M2’ được huấn luyện với các công thức SBB, cho kết quả tuyệt vời, tốt hơn trên ImageNet so với lần thử trước đó với ít lượt huấn luyện hơn.
    • vit_so150m2_patch16_reg1_gap_448.sbb_e200_in12k_ft_in1k - 88,1% top-1
    • vit_so150m2_patch16_reg1_gap_384.sbb_e200_in12k_ft_in1k - 87,9% top-1
    • vit_so150m2_patch16_reg1_gap_256.sbb_e200_in12k_ft_in1k - 87,3% top-1
    • vit_so150m2_patch16_reg4_gap_256.sbb_e200_in12k
  • Đã cập nhật trọng số InternViT-300M ‘2.5’
  • Phiên bản 1.0.15

1 tháng 2, 2025

  • Lưu ý: PyTorch 2.6 & Python 3.13 đã được kiểm tra và hoạt động với phiên bản main hiện tại và phiên bản đã phát hành của timm

27 tháng 1 năm 2025

19 tháng 1 năm 2025

  • Sửa lỗi tải trọng số safetensor của LeViT, xóa mã chuyển đổi vốn phải đã bị vô hiệu hóa
  • Thêm trọng số ViT ‘SO150M’ được huấn luyện với các công thức SBB, kết quả khá tốt nhưng hình dạng không tối ưu cho pretrain/ft trên ImageNet-12k/1k
    • vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k_ft_in1k - 86,7% top-1
    • vit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k - 87,4% top-1
    • vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k
  • Dọn dẹp các lỗi gõ phím, lỗi chính tả, v.v.
  • Phát hành 1.0.14 để đưa bản sửa lỗi LeViT lên

9 tháng 1, 2025

  • Thêm hỗ trợ huấn luyện và xác thực bằng bfloat16 hoặc float16 thuần
  • Tham số tên dự án wandb được thêm bởi https://github.com/caojiaolong, sử dụng arg.experiment làm tên
  • Sửa lỗi cũ liên quan đến việc lưu checkpoint không hoạt động trên hệ thống tệp không hỗ trợ hard-link (ví dụ: các mount FUSE fs)
  • Phiên bản 1.0.13

6 tháng 1, 2025

  • Thêm wrapper torch.utils.checkpoint.checkpoint() trong timm.models với mặc định là use_reentrant=False, trừ khi TIMM_REENTRANT_CKPT=1 được đặt trong biến môi trường.

31 tháng 12 năm 2024

  • convnext_nano 384x384 pretrain & fine-tune trên ImageNet-12k. https://huggingface.co/models?search=convnext_nano%20r384
  • Thêm các bộ mã hóa AIM-v2 từ https://github.com/apple/ml-aim, xem trên Hub: https://huggingface.co/models?search=timm%20aimv2
  • Thêm các encoder PaliGemma2 từ https://github.com/google-research/big_vision vào PaliGemma hiện có, xem trên Hub: https://huggingface.co/models?search=timm%20pali2
  • Thêm L/14 DFN2B 39B CLIP ViT còn thiếu, vit_large_patch14_clip_224.dfn2b_s39b
  • Sửa lớp và hàm RmsNorm hiện có để khớp với công thức chuẩn, sử dụng triển khai của PT 2.5 khi có thể. Chuyển triển khai cũ sang lớp SimpleNorm, đây là LN không có centering hay bias. Chỉ có hai mô hình timm sử dụng nó, và chúng đã được cập nhật.
  • Cho phép ghi đè tham số cache_dir khi tạo model
  • Truyền trust_remote_code cho bộ bọc dữ liệu HF
  • Model inception_next_atto được thêm bởi người tạo
  • Lưu ý về bộ tối ưu Adan và các tùy chọn suy giảm trọng số tách rời của Lamb
  • Một số metadata feature_info được sửa bởi https://github.com/brianhou0208
  • Tất cả trọng số mô hình OpenCLIP và JAX (CLIP, SigLIP, Pali, v.v.) đã sử dụng load time remapping đều được cấp các instance riêng trên HF Hub để hoạt động với việc nạp dựa trên hf-hub:, do đó sẽ tương thích với TimmWrapperModel mới của Transformers

28 tháng 11, 2024

12 tháng 11, 2024

  • Tái cấu trúc nhà máy optimizer
    • Nhà máy mới hoạt động bằng cách đăng ký các bộ tối ưu hóa bằng cách sử dụng dataclass OptimInfo với một số đặc điểm chính
    • Thêm list_optimizers, get_optimizer_class, get_optimizer_info vào hàm create_optimizer_v2 đã được làm lại để khám phá các optimizer, lấy thông tin hoặc lớp
    • deprecate optim.optim_factory, di chuyển các hàm sang optim/_optim_factory.py và optim/_param_groups.py và khuyến khích import thông qua timm.optim
  • Thêm bộ tối ưu hóa Adopt (https://github.com/iShohei220/adopt)
  • Thêm biến thể ‘Big Vision’ của bộ tối ưu hóa Adafactor (https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)
  • Sửa Adafactor gốc để chọn các chiều phân tích tốt hơn cho các phép tích chập
  • Tinh chỉnh trình tối ưu LAMB với một số cải tiến trong chức năng torch.where so với bản gốc, tái cấu trúc việc cắt xén một chút
  • Hỗ trợ kích thước ảnh động trong vit, deit, eva được cải thiện để hỗ trợ thay đổi kích thước từ các lưới patch không vuông, cảm ơn https://github.com/wojtke

31 tháng 10, 2024

Thêm một bộ trọng số mới của ResNet & ResNet-V2 18/34 (khối cơ bản) được huấn luyện rất tốt. Xem https://huggingface.co/blog/rwightman/resnet-trick-or-treat

19 tháng 10, 2024

  • Dọn dẹp việc sử dụng torch amp để tránh các lệnh gọi cụ thể cho cuda, tích hợp hỗ trợ thiết bị Ascend (NPU) từ MengqingCao mà giờ đây nên hoạt động trong PyTorch 2.5 với tính năng tự động nạp phần mở rộng thiết bị mới. Đã kiểm tra Intel Arc (XPU) trong Pytorch 2.5 và nó (phần lớn) hoạt động.

16 tháng 10, 2024

  • Sửa lỗi khi import từ đường dẫn đã bị ngừng hỗ trợ timm.models.registry, tăng mức ưu tiên của các cảnh báo ngừng hỗ trợ hiện có để hiển thị rõ hơn
  • Chuyển trọng số của InternViT-300M (https://huggingface.co/OpenGVLab/InternViT-300M-448px) sang timm dưới dạng vit_intern300m_patch14_448

14 tháng 10, 2024

  • Bản Pre-activation (ResNetV2) của các định nghĩa mô hình ResNet 18/18d/34/34d được thêm theo yêu cầu (đang chờ trọng số)
  • Phiên bản 1.0.10

11 tháng 10, 2024

  • Đã thêm model & weights của MambaOut (https://github.com/yuweihao/MambaOut). Một cách tiếp cận táo bạo với các model thị giác SSM không có SSM (về cơ bản là ConvNeXt có gating). Bao gồm các weights gốc + các biến thể & weights tùy chỉnh.
modelimg_sizetop1top5param_count
mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1k38487.50698.428101.66
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k28886.91298.236101.66
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k22486.63298.156101.66
mambaout_base_tall_rw.sw_e500_in1k28884.97497.33286.48
mambaout_base_wide_rw.sw_e500_in1k28884.96297.20894.45
mambaout_base_short_rw.sw_e500_in1k28884.83297.2788.83
mambaout_base.in1k28884.7296.9384.81
mambaout_small_rw.sw_e450_in1k28884.59897.09848.5
mambaout_small.in1k28884.596.97448.49
mambaout_base_wide_rw.sw_e500_in1k22484.45496.86494.45
mambaout_base_tall_rw.sw_e500_in1k22484.43496.95886.48
mambaout_base_short_rw.sw_e500_in1k22484.36296.95288.83
mambaout_base.in1k22484.16896.6884.81
mambaout_small.in1k22484.08696.6348.49
mambaout_small_rw.sw_e450_in1k22484.02496.75248.5
mambaout_tiny.in1k28883.44896.53826.55
mambaout_tiny.in1k22482.73696.126.55
mambaout_kobe.in1k28881.05495.7189.14
mambaout_kobe.in1k22479.98694.9869.14
mambaout_femto.in1k28879.84895.147.3
mambaout_femto.in1k22478.8794.4087.3

Tháng 9 năm 2024

21 tháng 8, 2024

  • Các mô hình SBB ViT đã được cập nhật, huấn luyện trên ImageNet-12k và tinh chỉnh trên ImageNet-1k, thách thức khá nhiều mô hình lớn hơn và chậm hơn
modeltop1top5param_countimg_size
vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k87.43898.25664.11384
vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k86.60897.93464.11256
vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k86.59498.0260.4384
vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k85.73497.6160.4256
  • Trọng số của MobileNet-V1 1.25, EfficientNet-B1 và ResNet50-D với công thức thử thách baseline MNV4
modeltop1top5param_countimg_size
resnet50d.ra4_e3600_r224_in1k81.83895.92225.58288
efficientnet_b1.ra4_e3600_r240_in1k81.44095.7007.79288
resnet50d.ra4_e3600_r224_in1k80.95295.38425.58224
efficientnet_b1.ra4_e3600_r240_in1k80.40695.1527.79240
mobilenetv1_125.ra4_e3600_r224_in1k77.60093.8046.27256
mobilenetv1_125.ra4_e3600_r224_in1k76.92493.2346.27224
  • Thêm hỗ trợ kiến trúc & tải trọng số cho backbone SAM2 (HieraDet)
  • Thêm trọng số Hiera Small được huấn luyện với nhúng vị trí abswin trên in12k & tinh chỉnh trên 1k
modeltop1top5param_count
hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k84.91297.26035.01
hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k84.56097.10635.01

8 tháng 8, 2024

28 tháng 7 năm 2024

  • Thêm trọng số mobilenet_edgetpu_v2_m với công thức dựa trên ra4 mnv4-small. 80,1% top-1 @ 224 và 80,7 @ 256.
  • Phiên bản 1.0.8

Ngày 26 tháng 7 năm 2024

  • Thêm các trọng số MobileNet-v4, huấn luyện trước trên ImageNet-12k kèm theo các phiên bản tinh chỉnh, và các mô hình ConvLarge chống răng cưa
modeltop1top1_errtop5top5_errparam_countimg_size
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k84.9915.0197.2942.70632.59544
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k84.77215.22897.3442.65632.59480
mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k84.6415.3697.1142.88632.59448
mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k84.31415.68697.1022.89832.59384
mobilenetv4_conv_aa_large.e600_r384_in1k83.82416.17696.7343.26632.59480
mobilenetv4_conv_aa_large.e600_r384_in1k83.24416.75696.3923.60832.59384
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k82.9917.0196.673.3311.07320
mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k82.36417.63696.2563.74411.07256
modeltop1top1_errtop5top5_errparam_countimg_size
efficientnet_b0.ra4_e3600_r224_in1k79.36420.63694.7545.2465.29256
efficientnet_b0.ra4_e3600_r224_in1k78.58421.41694.3385.6625.29224
mobilenetv1_100h.ra4_e3600_r224_in1k76.59623.40493.2726.7285.28256
mobilenetv1_100.ra4_e3600_r224_in1k76.09423.90693.0046.9964.23256
mobilenetv1_100h.ra4_e3600_r224_in1k75.66224.33892.5047.4965.28224
mobilenetv1_100.ra4_e3600_r224_in1k75.38224.61892.3127.6884.23224
  • Bổ sung nguyên mẫu của set_input_size() vào các mô hình vit và swin v1/v2 để cho phép thay đổi kích thước ảnh, kích thước patch, kích thước cửa sổ sau khi tạo mô hình.
  • Hỗ trợ xử lý kích thước khác nhau trong swin được cải thiện, ngoài ra các tham số set_input_size, always_partition và strict_img_size đã được thêm vào __init__ để cho phép các ràng buộc kích thước đầu vào linh hoạt hơn
  • Sửa thông tin chỉ mục bị sai thứ tự cho wrapper đặc trưng ‘Getter’ trung gian, kiểm tra chỉ mục out-of-order hoặc range cho cùng wrapper đó.
  • Thêm một vài mô hình tiny < .5M tham số để kiểm thử, thực sự được huấn luyện trên ImageNet-1k
modeltop1top1_errtop5top5_errparam_countimg_sizecrop_pct
test_efficientnet.r160_in1k47.15652.84471.72628.2740.361921.0
test_byobnet.r160_in1k46.69853.30271.67428.3260.461921.0
test_efficientnet.r160_in1k46.42653.57470.92829.0720.361600.875
test_byobnet.r160_in1k45.37854.62270.57229.4280.461600.875
test_vit.r160_in1k42.058.068.66431.3360.371921.0
test_vit.r160_in1k40.82259.17867.21232.7880.371600.875
  • Sửa khởi tạo token vit reg, cảm ơn Promisery
  • Các sửa lỗi khác

24 tháng 6 năm 2024

  • 3 bộ trọng số MobileNetV4 hybrid khác nhau với các phương án khởi tạo trọng số MQA khác nhau
modeltop1top1_errtop5top5_errparam_countimg_size
mobilenetv4_hybrid_large.ix_e600_r384_in1k84.35615.64496.8923.10837.76448
mobilenetv4_hybrid_large.ix_e600_r384_in1k83.99016.01096.7023.29837.76384
mobilenetv4_hybrid_medium.ix_e550_r384_in1k83.39416.60696.7603.24011.07448
mobilenetv4_hybrid_medium.ix_e550_r384_in1k82.96817.03296.4743.52611.07384
mobilenetv4_hybrid_medium.ix_e550_r256_in1k82.49217.50896.2783.72211.07320
mobilenetv4_hybrid_medium.ix_e550_r256_in1k81.44618.55495.7044.29611.07256
  • tải trọng số florence2 trong mô hình DaViT

Ngày 12 tháng 6 năm 2024

  • Các mô hình MobileNetV4 và bộ trọng số huấn luyện ban đầu của timm đã được thêm vào:
modeltop1top1_errtop5top5_errparam_countimg_size
mobilenetv4_hybrid_large.e600_r384_in1k84.26615.73496.9363.06437.76448
mobilenetv4_hybrid_large.e600_r384_in1k83.80016.20096.7703.23037.76384
mobilenetv4_conv_large.e600_r384_in1k83.39216.60896.6223.37832.59448
mobilenetv4_conv_large.e600_r384_in1k82.95217.04896.2663.73432.59384
mobilenetv4_conv_large.e500_r256_in1k82.67417.32696.313.6932.59320
mobilenetv4_conv_large.e500_r256_in1k81.86218.13895.694.3132.59256
mobilenetv4_hybrid_medium.e500_r224_in1k81.27618.72495.7424.25811.07256
mobilenetv4_conv_medium.e500_r256_in1k80.85819.14295.7684.2329.72320
mobilenetv4_hybrid_medium.e500_r224_in1k80.44219.55895.384.6211.07224
mobilenetv4_conv_blur_medium.e500_r224_in1k80.14219.85895.2984.7029.72256
mobilenetv4_conv_medium.e500_r256_in1k79.92820.07295.1844.8169.72256
mobilenetv4_conv_medium.e500_r224_in1k79.80820.19295.1864.8149.72256
mobilenetv4_conv_blur_medium.e500_r224_in1k79.43820.56294.9325.0689.72224
mobilenetv4_conv_medium.e500_r224_in1k79.09420.90694.775.239.72224
mobilenetv4_conv_small.e2400_r224_in1k74.61625.38492.0727.9283.77256
mobilenetv4_conv_small.e1200_r224_in1k74.29225.70892.1167.8843.77256
mobilenetv4_conv_small.e2400_r224_in1k73.75626.24491.4228.5783.77224
mobilenetv4_conv_small.e1200_r224_in1k73.45426.54691.348.663.77224
  • Hỗ trợ và trọng số cho mô hình tháp ảnh Apple MobileCLIP (https://arxiv.org/pdf/2311.17049, FastViT và ViT-B) đã được thêm vào (một phần của hỗ trợ OpenCLIP).
  • Mô hình tháp ảnh CLIP và trọng số của ViTamin (https://arxiv.org/abs/2404.02132) đã được thêm vào (một phần của hỗ trợ OpenCLIP).
  • Hỗ trợ mô hình hóa & trọng số cho tháp ảnh ResNet đã chỉnh sửa của OpenAI CLIP (thông qua ByobNet). Tái cấu trúc AttentionPool2d.

Ngày 14 tháng 5 năm 2024

  • Hỗ trợ nạp trọng số PaliGemma jax vào các mô hình SigLIP ViT với pooling trung bình.
  • Thêm các mô hình Hiera từ Meta (https://github.com/facebookresearch/hiera).
  • Thêm cờ normalize= cho transforms, trả về torch.Tensor không được chuẩn hóa với kiểu dữ liệu gốc (cho chug)
  • Phiên bản 1.0.3

Ngày 11 tháng 5 năm 2024

  • Searching for Better ViT Baselines (For the GPU Poor) đã phát hành các trọng số và các biến thể vit. Khám phá các hình dạng mô hình nằm giữa Tiny và Base.
modeltop1top5param_countimg_size
vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k86.20297.87464.11256
vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k85.41897.4860.4256
vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k84.32296.81263.95256
vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k83.90696.68460.23256
vit_base_patch16_rope_reg1_gap_256.sbb_in1k83.86696.6786.43256
vit_medium_patch16_rope_reg1_gap_256.sbb_in1k83.8196.82438.74256
vit_betwixt_patch16_reg4_gap_256.sbb_in1k83.70696.61660.4256
vit_betwixt_patch16_reg1_gap_256.sbb_in1k83.62896.54460.4256
vit_medium_patch16_reg4_gap_256.sbb_in1k83.4796.62238.88256
vit_medium_patch16_reg1_gap_256.sbb_in1k83.46296.54838.88256
vit_little_patch16_reg4_gap_256.sbb_in1k82.51496.26222.52256
vit_wee_patch16_reg1_gap_256.sbb_in1k80.25695.36013.42256
vit_pwee_patch16_reg1_gap_256.sbb_in1k80.07295.13615.25256
vit_mediumd_patch16_reg4_gap_256.sbb_in12kN/AN/A64.11256
vit_betwixt_patch16_reg4_gap_256.sbb_in12kN/AN/A60.4256
  • Trợ lý AttentionExtract được thêm vào để trích xuất các bản đồ chú ý từ các mô hình timm. Xem ví dụ tại https://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949
  • API forward_intermediates() được tinh chỉnh và thêm vào nhiều mô hình hơn, bao gồm một số ConvNet có các phương pháp trích xuất khác.
  • 1017 trong số 1047 kiến trúc mô hình hỗ trợ trích xuất đặc trưng với features_only=True. 34 kiến trúc còn lại có thể được hỗ trợ nhưng dựa trên các yêu cầu ưu tiên.
  • Loại bỏ các hàm được chú thích bằng torch.jit.script, bao gồm cả các hàm kích hoạt JIT cũ. Chúng xung đột với dynamo, và dynamo hoạt động hiệu quả hơn nhiều khi được sử dụng.

Ngày 11 tháng 4 năm 2024

  • Chuẩn bị cho bản phát hành 1.0 đã bị trì hoãn quá lâu, mọi thứ đã ổn định trong một thời gian.
  • Tính năng quan trọng đã thiếu từ lâu, hỗ trợ features_only=True cho các mô hình ViT có trạng thái ẩn phẳng hoặc bố cục module không chuẩn (cho đến nay bao gồm 'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*')
  • Hỗ trợ các tính năng nêu trên được thực hiện thông qua API forward_intermediates() mới, có thể được sử dụng với một module bọc tính năng hoặc trực tiếp.
model = timm.create_model('vit_base_patch16_224')
final_feat, intermediates = model.forward_intermediates(input)
output = model.forward_head(final_feat)  # pooling + classifier head

print(final_feat.shape)
torch.Size([2, 197, 768])

for f in intermediates:
    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])
model = 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))

for o in output:
    print(o.shape)
torch.Size([2, 768, 32, 32])
torch.Size([2, 768, 32, 32])
  • Đã thêm trọng số tháp thị giác TinyCLIP, cảm ơn Thien Tran

19/02/2024

  • Đã thêm các mô hình Next-ViT. Được điều chỉnh từ https://github.com/bytedance/Next-ViT
  • Đã thêm các mô hình HGNet và PP-HGNetV2. Được điều chỉnh từ https://github.com/PaddlePaddle/PaddleClas bởi SeeFun
  • Đã xóa setup.py, chuyển sang xây dựng dựa trên pyproject.toml được hỗ trợ bởi PDM
  • Thêm cài đặt EMA cho mô hình đã cập nhật, sử dụng _for_each để giảm chi phí
  • Hỗ trợ các đối số thiết bị trong script huấn luyện cho các thiết bị không phải GPU
  • Các sửa lỗi khác và bổ sung nhỏ
  • Phiên bản Python tối thiểu được hỗ trợ đã tăng lên 3.8
  • Phiên bản 0.9.16

8 tháng 1, 2024

Tái cấu trúc Datasets & transform

  • Hỗ trợ bộ dữ liệu (iterable) dạng streaming của HuggingFace (--dataset hfids:org/dataset)
  • Điều chỉnh wrapper Webdataset để cải thiện việc lấy thông tin phân chia, có thể tự động lấy các phân chia từ webdataset được hỗ trợ trên HF hub
  • Đã kiểm tra datasets của HF và wrapper webdataset streaming từ HF hub với các bản tải lên ImageNet gần đây của timm tại https://huggingface.co/timm
  • Giữ cho các khóa cột/trường đầu vào và đích nhất quán giữa các bộ dữ liệu và truyền qua args
  • Hỗ trợ đơn sắc đầy đủ khi sử dụng e:g: --input-size 1 224 224 hoặc --in-chans 1, thiết lập chuyển đổi ảnh PIL phù hợp trong dataset
  • Cải thiện một số biến đổi crop & resize thay thế (ResizeKeepRatio, RandomCropOrPad, v.v.) để sử dụng trong dự án AI tài liệu PixParse
  • Thêm tùy chọn xác suất jitter màu theo phong cách SimCLR cùng với các tùy chọn grayscale và gaussian blur vào augmentations và args
  • Cho phép huấn luyện mà không có tập kiểm định (--val-split '') trong script huấn luyện
  • Thêm các đối số --bce-sum (tổng theo chiều lớp) và --bce-pos-weight (trọng số dương) cho quá trình huấn luyện vì đây là những điều chỉnh phổ biến của hàm mất mát BCE mà tôi thường phải hard code

23 tháng 11 năm 2023

  • Đã thêm các mô hình EfficientViT-Large, cảm ơn SeeFun
  • Sửa tương thích Python 3.7, sẽ sớm ngừng hỗ trợ
  • Các sửa lỗi khác
  • Phiên bản 0.9.12

20 tháng 11, 2023

Ngày 3 tháng 11 năm 2023

20 tháng 10, 2023

  • SigLIP trọng số của image tower được hỗ trợ trong vision_transformer.py.
    • Tiềm năng lớn cho việc tinh chỉnh và sử dụng cho các tính năng hạ nguồn.
  • Hỗ trợ ‘register’ thử nghiệm trong các mô hình vit theo Vision Transformers Need Registers
  • Đã cập nhật RepViT với bản phát hành trọng số mới. Cảm ơn wangao
  • Thêm hỗ trợ thay đổi kích thước patch (khi tải trọng số được huấn luyện trước) vào các mô hình Swin
  • Phiên bản 0.9.8 đang chờ phát hành

1 tháng 9, 2023

  • TinyViT được thêm bởi SeeFun
  • Sửa EfficientViT (MIT) để sử dụng torch.autocast nhằm hoạt động từ PT 1.10 trở đi
  • Phiên bản 0.9.7

28 tháng 8, 2023

  • Thêm hỗ trợ kích thước ảnh động cho các model trong vision_transformer.py, vision_transformer_hybrid.py, deit.py, và eva.py mà không phá vỡ tính tương thích ngược. Thêm dynamic_img_size=True vào args khi tạo model để cho phép thay đổi kích thước lưới (interpolate abs và/hoặc ROPE pos embed ở mỗi lần forward pass). Thêm dynamic_img_pad=True để cho phép các kích thước ảnh không chia hết cho patch size (pad góc dưới bên phải đến patch size ở mỗi lần forward pass). Bật bất kỳ chế độ động nào sẽ phá vỡ FX tracing trừ khi module PatchEmbed được thêm như là leaf. Phương pháp hiện tại để resize position embedding bằng cách truyền img_size khác (interpolate trọng số embed được huấn luyện trước một lần) khi tạo vẫn hoạt động. Phương pháp hiện tại để thay đổi patch_size (resize trọng số patch_embed được huấn luyện trước một lần) khi tạo vẫn hoạt động. Lệnh kiểm chứng mẫu: python validate.py --data-dir /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
    • Thêm dynamic_img_size=True vào args khi tạo model để cho phép thay đổi kích thước lưới (interpolate abs và/hoặc ROPE pos embed ở mỗi lần forward pass).
    • Thêm dynamic_img_pad=True để cho phép kích thước ảnh không chia hết cho kích thước patch (lấp đầy góc dưới bên phải đến kích thước patch trong mỗi lần truyền tiến).
    • Việc bật bất kỳ chế độ động nào sẽ làm hỏng quá trình theo dõi FX trừ khi module PatchEmbed được thêm vào như một lá.
    • Phương pháp hiện tại để thay đổi kích thước position embedding bằng cách truyền các giá trị img_size khác nhau (chỉ nội suy trọng số embed được huấn luyện trước một lần) khi khởi tạo vẫn hoạt động.
    • Phương pháp hiện tại để thay đổi patch_size (điều chỉnh kích thước trọng số pretrained của patch_embed một lần) khi khởi tạo vẫn hoạt động.
    • Lệnh kiểm tra mẫu python validate.py --data-dir /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

25 tháng 8, 2023

11 tháng 8, 2023

  • Các mô hình Swin, MaxViT, CoAtNet và BEiT hỗ trợ thay đổi kích thước ảnh/cửa sổ khi tạo với việc thích ứng trọng số được huấn luyện trước
  • Lệnh kiểm tra mẫu để kiểm tra với việc thay đổi kích thước không vuông python validate.py --data-dir /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

Ngày 3 tháng 8 năm 2023

  • Thêm trọng số GluonCV cho HRNet w18_small và w18_small_v2. Được chuyển đổi bởi SeeFun
  • Sửa lỗi hồi quy đặt tên mô hình selecsls*
  • Patch và position embedding cho ViT/EVA hoạt động với trọng số bfloat16/float16 khi tải (hoặc kích hoạt cho việc thay đổi kích thước theo thời gian thực)
  • Chuẩn bị phát hành v0.9.5

27 tháng 7 năm 2023

  • Đã thêm trọng số seresnextaa201d_32x8d.sw_in12k_ft_in1k_384 được huấn luyện bằng timm (và tiền huấn luyện .sw_in12k) với top-1 87,3% trên ImageNet-1k, là mô hình thuộc họ ResNet trên ImageNet tốt nhất mà tôi biết.
  • Mô hình và trọng số RepViT (https://arxiv.org/abs/2307.09283) được thêm bởi wangao
  • Trọng số đặc trưng ViT của I-JEPA (không có bộ phân loại) do SeeFun thêm vào
  • Trọng số tính năng SAM-ViT (phân đoạn mọi thứ) (không có bộ phân loại) do SeeFun thêm
  • Thêm hỗ trợ cho các phương pháp trích xuất đặc trưng thay thế và chỉ số âm vào EfficientNet
  • Thêm bộ tối ưu NAdamW
  • Sửa lỗi khác

Ngày 11 tháng 5 năm 2023

  • timm 0.9 đã được phát hành, chuyển đổi từ các bản phát hành 0.8.xdev

Ngày 10 tháng 5 năm 2023

  • Việc tải xuống từ Hugging Face Hub giờ đã là mặc định, 1132 mô hình trên https://huggingface.co/timm, 1163 trọng số trong timm
  • Trọng số của backbone đặc trưng vit DINOv2 đã được thêm vào, cảm ơn Leng Yue
  • Đã thêm trọng số của bộ khung đặc trưng vit cho FB MAE
  • Đã thêm trọng số backbone của OpenCLIP DataComp-XL L/14 feat
  • MetaFormer (poolformer-v2, caformer, convformer, poolformer cập nhật (v1)) với trọng số được thêm bởi Fredo Guan
  • Hàm get_intermediate_layers thử nghiệm trên các mô hình vit/deit để lấy các trạng thái ẩn (được lấy cảm hứng từ cài đặt DINO). Đây là bản đang phát triển và có thể thay đổi đáng kể… rất mong nhận được phản hồi.
  • Việc tạo model gây ra lỗi nếu pretrained=True và không có trọng số nào tồn tại (thay vì tiếp tục với khởi tạo ngẫu nhiên)
  • Sửa lỗi hồi quy với trọng lượng TF có nguồn gốc từ inception / nasnet với 1001 lớp trong các bộ phân loại gốc
  • Các optimizer của bitsandbytes (https://github.com/TimDettmers/bitsandbytes) đã được thêm vào factory, sử dụng tiền tố bnb, ví dụ bnbadam8bit
  • Dọn dẹp và sửa lỗi khác
  • Kiểm tra cuối cùng trước khi chuyển sang 0.9 và đưa timm ra khỏi trạng thái pre-release

27 tháng 4 năm 2023

  • 97% các mô hình timm được tải lên HF Hub và gần như tất cả đều được cập nhật để hỗ trợ cấu hình tiền huấn luyện đa trọng số
  • Dọn dẹp và tái cấu trúc nhỏ gọn một nhóm các model khác khi thêm multi-weight. Hỗ trợ thêm fused_attn (F.sdpa) và features_only, cùng các sửa lỗi cho torchscript.

Ngày 21 tháng 4 năm 2023

  • Hỗ trợ tích lũy gradient đã được thêm vào script huấn luyện và kiểm thử (--grad-accum-steps), cảm ơn Taeksang Kim
  • Thêm các trọng số trên HF Hub (cspnet, cait, volo, xcit, tresnet, hardcorenas, densenet, dpn, vovnet, xception_aligned)
  • Đã thêm --head-init-scale và --head-init-bias vào train.py để điều chỉnh tỷ lệ của đầu phân loại và đặt bias cố định cho fine-tune
  • Xóa toàn bộ việc sử dụng InplaceABN (inplace_abn), thay thế bằng BatchNorm chuẩn trong tresnet (đã điều chỉnh trọng số cho phù hợp).

Ngày 12 tháng 4 năm 2023

  • Thêm script xuất ONNX, script kiểm tra, các hàm trợ giúp mà tôi đã có từ lâu. Điều chỉnh padding ‘same’ để xuất tốt hơn với ONNX + pytorch gần đây.
  • Tái cấu trúc các tham số dropout cho vit và các mô hình tương tự vit, tách drop_rate thành drop_rate (dropout của bộ phân loại), proj_drop_rate (các phép chiếu mlp / out của khối), pos_drop_rate (dropout của embedding vị trí), attn_drop_rate (dropout của attention). Ngoài ra, thêm patch dropout (FLIP) vào các mô hình vit và eva.
  • hỗ trợ F.scaled_dot_product_attention đã hợp nhất cho nhiều mô hình vit hơn, thêm biến môi trường (TIMM_FUSED_ATTN) để kiểm soát, và giao diện cấu hình để bật/tắt
  • Thêm các backbone EVA-CLIP kèm trọng số image tower, bao gồm cả model ‘enormous’ 4B tham số, và chế độ OpenAI ViT 336x336 trước đó bị bỏ sót.

Ngày 5 tháng 4 năm 2023

  • Tất cả các mô hình ResNet được đẩy lên Hugging Face Hub với hỗ trợ nhiều trọng số
    • Tất cả các trọng số đã được huấn luyện trong quá khứ của timm được thêm vào với các thẻ dựa trên công thức để phân biệt
    • Tất cả các ResNet phản công A1/A2/A3 (seed 0) và trọng số của ví dụ R50 B/C1/C2/D có sẵn
    • Thêm trọng số công thức torchvision v2 vào các bản gốc torchvision hiện có
    • Xem bảng so sánh tại https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison
  • Đã có sẵn các mô hình fine-tune mới từ ImageNet-12k + ImageNet-1k cho một số mô hình ResNet chống răng cưa
    • 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

Ngày 31 tháng 3 năm 2023

  • Thêm fine-tune đầu tiên ConvNext-XXLarge CLIP -> IN-1k và các fine-tune trung gian IN-12k cho các mô hình CLIP convnext-base/large.
modeltop1top5img_sizeparam_countgmacsmacts
convnext_xxlarge.clip_laion2b_soup_ft_in1k88.61298.704256846.47198.09124.45
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_38488.31298.578384200.13101.11126.74
convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_32087.96898.47320200.1370.2188.02
convnext_base.clip_laion2b_augreg_ft_in12k_in1k_38487.13898.21238488.5945.2184.49
convnext_base.clip_laion2b_augreg_ft_in12k_in1k86.34497.9725688.5920.0937.55
  • Thêm trọng số pretrained và fine-tuned của EVA-02 MIM, đẩy lên HF hub và cập nhật model cards cho tất cả các model EVA. Model đầu tiên đạt trên 90% top-1 (99% top-5)! Xem mã nguồn gốc & trọng số tại https://github.com/baaivision/EVA để biết thêm chi tiết về công việc của họ kết hợp MIM, CLIP với nhiều điều chỉnh về model, dataset và công thức huấn luyện.
modeltop1top5param_countimg_size
eva02_large_patch14_448.mim_m38m_ft_in22k_in1k90.05499.042305.08448
eva02_large_patch14_448.mim_in22k_ft_in22k_in1k89.94699.01305.08448
eva_giant_patch14_560.m30m_ft_in22k_in1k89.79298.9921014.45560
eva02_large_patch14_448.mim_in22k_ft_in1k89.62698.954305.08448
eva02_large_patch14_448.mim_m38m_ft_in1k89.5798.918305.08448
eva_giant_patch14_336.m30m_ft_in22k_in1k89.5698.9561013.01336
eva_giant_patch14_336.clip_ft_in1k89.46698.821013.01336
eva_large_patch14_336.in22k_ft_in22k_in1k89.21498.854304.53336
eva_giant_patch14_224.clip_ft_in1k88.88298.6781012.56224
eva02_base_patch14_448.mim_in22k_ft_in22k_in1k88.69298.72287.12448
eva_large_patch14_336.in22k_ft_in1k88.65298.722304.53336
eva_large_patch14_196.in22k_ft_in22k_in1k88.59298.656304.14196
eva02_base_patch14_448.mim_in22k_ft_in1k88.2398.56487.12448
eva_large_patch14_196.in22k_ft_in1k87.93498.504304.14196
eva02_small_patch14_336.mim_in22k_ft_in1k85.7497.61422.13336
eva02_tiny_patch14_336.mim_in22k_ft_in1k80.65895.5245.76336
  • Trọng số đa lớp và HF hub cho các mô hình dựa trên DeiT và MLP-Mixer

Ngày 22 tháng 3 năm 2023

  • Thêm nhiều trọng số được đẩy lên HF hub cùng với hỗ trợ đa trọng số, bao gồm: regnet.py, rexnet.py, byobnet.py, resnetv2.py, swin_transformer.py, swin_transformer_v2.py, swin_transformer_v2_cr.py
  • Mô hình Swin Transformer hỗ trợ trích xuất đặc trưng (bản đồ đặc trưng NCHW cho swinv2_cr_*, và NHWC cho tất cả các mô hình khác) cùng với đầu ra nhúng không gian.
  • Các mô hình và trọng số của FocalNet (từ https://github.com/microsoft/FocalNet) được thêm vào với việc tái cấu trúc đáng kể, trích xuất đặc trưng, không có ràng buộc về độ phân giải / kích thước cố định
  • Trọng số của RegNet đã được tăng cường với việc đẩy lên HF hub, SWAG, SEER và trọng số của torchvision v2. SEER khá kém về hiệu suất so với kích thước mô hình, nhưng có thể hữu ích.
  • Thêm các trọng số được huấn luyện trước trên ImageNet-12k và tinh chỉnh trên 1k timm của
    • 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 - 85.6 @ 224, 86.0 @ 288 (so sánh với SWAG PT + 1k FT, đây là cùng một thứ nhưng độ phân giải thấp hơn nhiều, vượt trội so với SEER FT)
  • Chức năng ngừng hỗ trợ tên mô hình + ánh xạ lại đã được thêm vào (một cột mốc quan trọng để đưa 0.8.x ra khỏi giai đoạn pre-release). Các ánh xạ đang được thêm vào…
  • Sửa lỗi nhỏ và cải tiến.

26 tháng 2 năm 2023

  • Thêm trọng số tháp ảnh được huấn luyện trước của ConvNeXt-XXLarge CLIP để tinh chỉnh & trích xuất đặc trưng (tinh chỉnh sẽ được cập nhật sau) — xem thẻ mô hình
  • Cập nhật eps mặc định của LayerNorm trong convnext_xxlarge thành 1e-5 (cho trọng số CLIP, cải thiện độ ổn định)
  • 0.8.15dev0

20 tháng 2 năm 2023

  • Thêm trọng số tháp ảnh CLIP 320x320 convnext_large_mlp.clip_laion2b_ft_320 và convnext_large_mlp.clip_laion2b_ft_soup_320 cho tính năng & tinh chỉnh
  • Phát hành 0.8.13dev0 trên pypi cho các thay đổi mới nhất cùng với việc chuyển sang tổ chức huggingface

16/02/2023

  • Đã thêm hỗ trợ checkpoint safetensor
  • Thêm các ý tưởng từ ‘Scaling Vision Transformers to 22 B. Params’ (https://arxiv.org/abs/2302.05442) — qk norm, RmsNorm, khối song song
  • Thêm hỗ trợ F.scaleddot_product_attention (chỉ dành cho PyTorch 2.0) cho `vit,vit_relpos,coatnet/maxxvit` (để bắt đầu)
  • Trình tối ưu Lion (có tùy chọn đa tensor) đã được thêm vào (https://arxiv.org/abs/2302.06675)
  • gradient checkpointing hoạt động với features_only=True

7 tháng 2, 2023

  • Các số liệu benchmark suy luận mới đã được thêm vào thư mục results.
  • Thêm trọng số huấn luyện của convnext LAION CLIP và bộ fine-tune in1k ban đầu
    • 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
  • Thêm các mô hình DaViT. Hỗ trợ features_only=True. Được điều chỉnh từ https://github.com/dingmyu/davit bởi Fredo.
  • Sử dụng NormMlpClassifierHead chung cho MaxViT, ConvNeXt, DaViT
  • Thêm mô hình EfficientFormer-V2, cập nhật EfficientFormer và refactor LeViT (các kiến trúc liên quan chặt chẽ). Trọng số trên HF hub.
    • Kiến trúc EfficientFormer-V2 mới, được tái cấu trúc đáng kể so với bản gốc tại (https://github.com/snap-research/EfficientFormer). Hỗ trợ features_only=True.
    • Cập nhật nhỏ cho EfficientFormer.
    • Tái cấu trúc các mô hình LeViT thành các giai đoạn, thêm hỗ trợ features_only=True cho các biến thể conv mới, cần ánh xạ lại trọng số.
  • Di chuyển dữ liệu meta của ImageNet (synsets, indices) từ /results sang timm/data/_info.
  • Thêm các lớp ImageNetInfo / DatasetInfo để cung cấp nhãn cho các bố cục bộ phân loại ImageNet khác nhau trong timm
    • Cập nhật inference.py để sử dụng, thử: python inference.py --data-dir /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
  • Sẵn sàng cho bản pre-release 0.8.10 trên pypi (kiểm tra cuối cùng).

20 tháng 1 năm 2023

  • Thêm hai phiên bản fine-tune convnext 12k -> 1k ở kích thước 384x384

    • convnext_tiny.in12k_ft_in1k_384 - 85.1 @ 384
    • convnext_small.in12k_ft_in1k_384 - 86.2 @ 384
  • Đẩy toàn bộ trọng số MaxxViT lên HF hub, và thêm các phiên bản fine-tune mới từ ImageNet-12k -> 1k cho các mô hình rw base MaxViT và CoAtNet 1/2

modeltop1top5mẫu / giâySố tham số (M)GMACHành động (M)
maxvit_xlarge_tf_512.in21k_ft_in1k88.5398.6421.76475.77534.141413.22
maxvit_xlarge_tf_384.in21k_ft_in1k88.3298.5442.53475.32292.78668.76
maxvit_base_tf_512.in21k_ft_in1k88.2098.5350.87119.88138.02703.99
maxvit_large_tf_512.in21k_ft_in1k88.0498.4036.42212.33244.75942.15
maxvit_large_tf_384.in21k_ft_in1k87.9898.5671.75212.03132.55445.84
maxvit_base_tf_384.in21k_ft_in1k87.9298.54104.71119.6573.80332.90
maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k87.8198.37106.55116.1470.97318.95
maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k87.4798.37149.49116.0972.98213.74
coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k87.3998.31160.8073.8847.69209.43
maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k86.8998.02375.86116.1423.1592.64
maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k86.6498.02501.03116.0924.2062.77
maxvit_base_tf_512.in1k86.6097.9250.75119.88138.02703.99
coatnet_2_rw_224.sw_in12k_ft_in1k86.5797.89631.8873.8715.0949.22
maxvit_large_tf_512.in1k86.5297.8836.04212.33244.75942.15
coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k86.4997.90620.5873.8815.1854.78
maxvit_base_tf_384.in1k86.2997.80101.09119.6573.80332.90
maxvit_large_tf_384.in1k86.2397.6970.56212.03132.55445.84
maxvit_small_tf_512.in1k86.1097.7688.6369.1367.26383.77
maxvit_tiny_tf_512.in1k85.6797.58144.2531.0533.49257.59
maxvit_small_tf_384.in1k85.5497.46188.3569.0235.87183.65
maxvit_tiny_tf_384.in1k85.1197.38293.4630.9817.53123.42
maxvit_large_tf_224.in1k84.9396.97247.71211.7943.68127.35
coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k84.9096.961025.4541.728.1140.13
maxvit_base_tf_224.in1k84.8596.99358.25119.4724.0495.01
maxxvit_rmlp_small_rw_256.sw_in1k84.6397.06575.5366.0114.6758.38
coatnet_rmlp_2_rw_224.sw_in1k84.6196.74625.8173.8815.1854.78
maxvit_rmlp_small_rw_224.sw_in1k84.4996.76693.8264.9010.7549.30
maxvit_small_tf_224.in1k84.4396.83647.9668.9311.6653.17
maxvit_rmlp_tiny_rw_256.sw_in1k84.2396.78807.2129.156.7746.92
coatnet_1_rw_224.sw_in1k83.6296.38989.5941.728.0434.60
maxvit_tiny_rw_224.sw_in1k83.5096.501100.5329.065.1133.11
maxvit_tiny_tf_224.in1k83.4196.591004.9430.925.6035.78
coatnet_rmlp_1_rw_224.sw_in1k83.3696.451093.0341.697.8535.47
maxxvitv2_nano_rw_256.sw_in1k83.1196.331276.8823.706.2623.05
maxxvit_rmlp_nano_rw_256.sw_in1k83.0396.341341.2416.784.3726.05
maxvit_rmlp_nano_rw_256.sw_in1k82.9696.261283.2415.504.4731.92
maxvit_nano_rw_256.sw_in1k82.9396.231218.1715.454.4630.28
coatnet_bn_0_rw_224.sw_in1k82.3996.191600.1427.444.6722.04
coatnet_0_rw_224.sw_in1k82.3995.841831.2127.444.4318.73
coatnet_rmlp_nano_rw_224.sw_in1k82.0595.872109.0915.152.6220.34
coatnext_nano_rw_224.sw_in1k81.9595.922525.5214.702.4712.80
coatnet_nano_rw_224.sw_in1k81.7095.642344.5215.142.4115.41
maxvit_rmlp_pico_rw_256.sw_in1k80.5395.211594.717.521.8524.86

11 tháng 1, 2023

  • Cập nhật chuỗi pretrain ConvNeXt ImageNet-12k với hai trọng số fine-tuned mới (và pre FT .in12k tags)
    • convnext_nano.in12k_ft_in1k - 82.3 @ 224, 82.9 @ 288 (đã phát hành trước đó)
    • convnext_tiny.in12k_ft_in1k - 84.2 @ 224, 84.5 @ 288
    • convnext_small.in12k_ft_in1k - 85.2 @ 224, 85.3 @ 288

6 tháng 1, 2023

  • Cuối cùng cũng đã thêm --model-kwargs và --opt-kwargs vào các script để truyền trực tiếp các tham số hiếm gặp từ dòng lệnh đến các lớp model
    • train.py --data-dir /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silu
    • train.py --data-dir /imagenet --model vit_base_patch16_clip_224 --img-size 240 --amp --model-kwargs img_size=240 patch_size=12
  • Dọn dẹp một số model phổ biến để hỗ trợ tốt hơn việc truyền tham số / hợp nhất với cấu hình model, còn nhiều việc cần làm.

5 tháng 1, 2023

23 tháng 12, 2022 🎄☃

  • Thêm các mô hình và trọng số FlexiViT từ https://github.com/google-research/big_vision (xem bài báo tại https://arxiv.org/abs/2212.08013)
    • NOTE hiện tại việc thay đổi kích thước là tĩnh khi tạo mô hình, việc lấy mẫu kích thước patch động / trong quá trình huấn luyện là đang phát triển
  • Nhiều mô hình khác đã được cập nhật để hỗ trợ nhiều trọng số và có thể tải xuống qua HF hub (convnext, efficientnet, mobilenet, vision_transformer*, beit)
  • Thêm thẻ model pretrained và các điều chỉnh, một số tên model đã được thay đổi (đang làm việc với các bản dịch deprecation, hãy xem xét nhánh DEV chính ngay bây giờ, sử dụng 0.6.x cho việc sử dụng ổn định)
  • Thêm các mô hình pretrain ImageNet-12k (tập con của 22k) xuất hiện:
    • 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

Ngày 8 tháng 12 năm 2022

  • Thêm ‘EVA l’ vào vision_transformer.py, MAE style ViT-L/14 MIM pretrain w/ EVA-CLIP targets, FT on ImageNet-1k (w/ ImageNet-22k intermediate for some)
modeltop1param_countgmacmactshub
eva_large_patch14_336.in22k_ft_in22k_in1k89.2304.5191.1270.2liên kết
eva_large_patch14_336.in22k_ft_in1k88.7304.5191.1270.2liên kết
eva_large_patch14_196.in22k_ft_in22k_in1k88.6304.161.663.5liên kết
eva_large_patch14_196.in22k_ft_in1k87.9304.161.663.5liên kết

6 tháng 12, 2022

modeltop1param_countgmacmactshub
eva_giant_patch14_560.m30m_ft_in22k_in1k89.81014.41906.82577.2liên kết
eva_giant_patch14_336.m30m_ft_in22k_in1k89.61013620.6550.7liên kết
eva_giant_patch14_336.clip_ft_in1k89.41013620.6550.7liên kết
eva_giant_patch14_224.clip_ft_in1k89.11012.6267.2192.6liên kết

Ngày 5 tháng 12 năm 2022

  • Phiên bản trước khi phát hành (0.8.0dev0) của tính năng hỗ trợ nhiều trọng số (model_arch.pretrained_tag). Cài đặt bằng pip install --pre timm
    • vision_transformer, maxvit, convnext là ba mô hình đầu tiên có hỗ trợ
    • tên model sẽ thay đổi theo điều này (các hàm trước đó như _21k, v.v. sẽ được hợp nhất), vẫn đang xử lý việc quản lý tính năng bị ngừng hỗ trợ
    • Có thể sẽ có lỗi, nhưng tôi cần phản hồi nên vui lòng thử nghiệm
    • nếu cần sự ổn định, vui lòng sử dụng các bản phát hành 0.6.x trên pypi hoặc clone từ nhánh 0.6.x
  • Hỗ trợ cho PyTorch 2.0 compile được thêm vào train/validate/inference/benchmark, sử dụng đối số --torchcompile
  • Script suy luận cho phép kiểm soát đầu ra tốt hơn, chọn k cho chỉ số + xác suất của lớp hàng đầu, đầu ra json, csv hoặc parquet
  • Thêm một bộ trọng số tháp ảnh CLIP tinh chỉnh đầy đủ từ cả các mô hình LAION-2B và OpenAI CLIP gốc
modeltop1param_countgmacmactshub
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k88.6632.5391407.5liên kết
vit_large_patch14_clip_336.openai_ft_in12k_in1k88.3304.5191.1270.2liên kết
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k88.2632167.4139.4liên kết
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k88.2304.5191.1270.2liên kết
vit_large_patch14_clip_224.openai_ft_in12k_in1k88.2304.281.188.8liên kết
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k87.9304.281.188.8liên kết
vit_large_patch14_clip_224.openai_ft_in1k87.9304.281.188.8liên kết
vit_large_patch14_clip_336.laion2b_ft_in1k87.9304.5191.1270.2liên kết
vit_huge_patch14_clip_224.laion2b_ft_in1k87.6632167.4139.4liên kết
vit_large_patch14_clip_224.laion2b_ft_in1k87.3304.281.188.8liên kết
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k87.286.955.5101.6liên kết
vit_base_patch16_clip_384.openai_ft_in12k_in1k8786.955.5101.6liên kết
vit_base_patch16_clip_384.laion2b_ft_in1k86.686.955.5101.6liên kết
vit_base_patch16_clip_384.openai_ft_in1k86.286.955.5101.6liên kết
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k86.286.617.623.9liên kết
vit_base_patch16_clip_224.openai_ft_in12k_in1k85.986.617.623.9liên kết
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k85.888.317.923.9liên kết
vit_base_patch16_clip_224.laion2b_ft_in1k85.586.617.623.9liên kết
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k85.488.313.116.5liên kết
vit_base_patch16_clip_224.openai_ft_in1k85.386.617.623.9liên kết
vit_base_patch32_clip_384.openai_ft_in12k_in1k85.288.313.116.5liên kết
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k83.388.24.45liên kết
vit_base_patch32_clip_224.laion2b_ft_in1k82.688.24.45liên kết
vit_base_patch32_clip_224.openai_ft_in1k81.988.24.45liên kết
  • Chuyển đổi trọng số MaxViT Tensorflow từ bản triển khai chính thức tại https://github.com/google-research/maxvit
    • Có sự sụt giảm lớn hơn dự kiến đối với trọng số fine-tune in21k được upscale lên 384/512, có thể do thiếu chi tiết, nhưng 21k FT dường như nhạy cảm với các thay đổi nhỏ trong tiền xử lý
modeltop1param_countgmacmactshub
maxvit_xlarge_tf_512.in21k_ft_in1k88.5475.8534.11413.2liên kết
maxvit_xlarge_tf_384.in21k_ft_in1k88.3475.3292.8668.8liên kết
maxvit_base_tf_512.in21k_ft_in1k88.2119.9138704liên kết
maxvit_large_tf_512.in21k_ft_in1k88212.3244.8942.2liên kết
maxvit_large_tf_384.in21k_ft_in1k88212132.6445.8liên kết
maxvit_base_tf_384.in21k_ft_in1k87.9119.673.8332.9liên kết
maxvit_base_tf_512.in1k86.6119.9138704liên kết
maxvit_large_tf_512.in1k86.5212.3244.8942.2liên kết
maxvit_base_tf_384.in1k86.3119.673.8332.9liên kết
maxvit_large_tf_384.in1k86.2212132.6445.8liên kết
maxvit_small_tf_512.in1k86.169.167.3383.8liên kết
maxvit_tiny_tf_512.in1k85.73133.5257.6liên kết
maxvit_small_tf_384.in1k85.56935.9183.6liên kết
maxvit_tiny_tf_384.in1k85.13117.5123.4liên kết
maxvit_large_tf_224.in1k84.9211.843.7127.4liên kết
maxvit_base_tf_224.in1k84.9119.52495liên kết
maxvit_small_tf_224.in1k84.468.911.753.2liên kết
maxvit_tiny_tf_224.in1k83.430.95.635.8liên kết

15 tháng 10, 2022

  • Nâng cấp cho script huấn luyện và kiểm
  • Hỗ trợ thiết bị không phải GPU (tức là CPU)
  • Tương thích SLURM cho script huấn luyện
  • Hỗ trợ bộ dữ liệu HF (thông qua ReaderHfds)
  • Cải thiện việc nạp dữ liệu TFDS/WDS (đệm mẫu/vòng lặp cho việc sử dụng phân tán đã được sửa liên quan đến ước tính số lượng mẫu)
  • hỗ trợ in_chans !=3 cho scripts / loader
  • Trình tối ưu Adan
  • Có thể bật lịch trình LR cho từng bước thông qua args
  • Bộ dữ liệu ‘parsers’ được đổi tên thành ‘readers’, mô tả rõ hơn mục đích
  • Tham số AMP đã thay đổi, APEX thông qua --amp-impl apex, hỗ trợ bfloat16 thông qua --amp-dtype bfloat16
  • main branch đã chuyển sang phiên bản 0.7.x, 0.6x được fork để phát hành ổn định các tính năng chỉ thêm trọng số
  • đổi tên nhánh master -> main

10 tháng 10, 2022

  • Thêm nhiều trọng số trong maxxvit dòng coatnext và maxxvit thí nghiệm:
    • coatnext_nano_rw_224 - 82.0 @ 224 (G) — (sử dụng khối conv của ConvNeXt, không có BatchNorm)
    • maxxvit_rmlp_nano_rw_256 - 83.0 @ 256, 83.7 @ 320 (G) (sử dụng khối conv của ConvNeXt, không có BN)
    • maxvit_rmlp_small_rw_224 - 84.5 @ 224, 85.1 @ 320 (G)
    • maxxvit_rmlp_small_rw_256 - 84.6 @ 256, 84.9 @ 288 (G) — có thể được huấn luyện tốt hơn, các siêu tham số cần được tinh chỉnh (sử dụng khối ConvNeXt, không có BN)
    • coatnet_rmlp_2_rw_224 - 84.6 @ 224, 85 @ 320 (T)
    • NOTE: trọng số MaxVit chính thức (in1k) đã được phát hành tại https://github.com/google-research/maxvit — cần thêm một số công việc để chuyển đổi và điều chỉnh vì bản triển khai của tôi được tạo độc lập với của họ và có một vài khác biệt nhỏ + toàn bộ vấn đề về same padding trong TF.

23 tháng 9 năm 2022

  • Các image tower của LAION-2B CLIP được hỗ trợ làm backbone pretrained để fine-tune hoặc trích xuất đặc trưng (không có classifier)
    • vit_base_patch32_224_clip_laion2b
    • vit_large_patch14_224_clip_laion2b
    • vit_huge_patch14_224_clip_laion2b
    • vit_giant_patch14_224_clip_laion2b

7 tháng 9, 2022

  • Trang chủ tài liệu timm của Hugging Face hiện đã có, hãy tìm thêm tại đây trong tương lai
  • Thêm trọng số BEiT-v2 cho các mô hình base và large 224x224 từ https://github.com/microsoft/unilm/tree/master/beit2
  • Thêm nhiều trọng số hơn vào maxxvit dòng pico (7.5bao gồm một tiny biến thể:
    • maxvit_rmlp_pico_rw_256 - 80.5 @ 256, 81.3 @ 320 (T)
    • maxvit_tiny_rw_224 - 83.5 @ 224 (G)
    • maxvit_rmlp_tiny_rw_256 - 84.2 @ 256, 84.8 @ 320 (T)

29 tháng 8, 2022

  • Kích thước cửa sổ của MaxVit mặc định sẽ thay đổi theo img_size. Thêm trọng số RelPosMlp MaxViT mới tận dụng điều này:
    • maxvit_rmlp_nano_rw_256 - 83.0 @ 256, 83.6 @ 320 (T)

26 tháng 8, 2022

  • CoAtNet (https://arxiv.org/abs/2106.04803) và MaxVit (https://arxiv.org/abs/2204.01697) timm các mô hình gốc của timm
    • đều được tìm thấy trong định nghĩa mô hình maxxvit.py, chứa nhiều thí nghiệm nằm ngoài phạm vi của các bài báo gốc
    • Một phiên bản Tensorflow chưa hoàn thiện từ các tác giả của MaxVit có thể được tìm thấy tại https://github.com/google-research/maxvit
  • Trọng số pretrained ban đầu của CoAtNet và MaxVit trong timm (đang làm thêm):
    • coatnet_nano_rw_224 - 81.7 @ 224 (T)
    • coatnet_rmlp_nano_rw_224 - 82.0 @ 224, 82.8 @ 320 (T)
    • coatnet_0_rw_224 - 82.4 (T) — LƯU Ý các coatnet ‘0’ của timm có thêm 2 khối giai đoạn 3
    • coatnet_bn_0_rw_224 - 82.4 (T)
    • maxvit_nano_rw_256 - 82.9 @ 256 (T)
    • coatnet_rmlp_1_rw_224 - 83.4 @ 224, 84 @ 320 (T)
    • coatnet_1_rw_224 - 83.6 @ 224 (G)
    • (T) = TPU được huấn luyện bằng mã huấn luyện của nhánh bits_and_tpu, (G) = GPU được huấn luyện
  • GCVit (trọng số được điều chỉnh từ https://github.com/NVlabs/GCVit, mã được viết lại 100% từ timm vì lý do giấy phép)
  • MViT-V2 (vit đa tỷ lệ, được điều chỉnh từ https://github.com/facebookresearch/mvit)
  • EfficientFormer (được điều chỉnh từ https://github.com/snap-research/EfficientFormer)
  • PyramidVisionTransformer-V2 (được điều chỉnh từ https://github.com/whai362/PVT)
  • Hỗ trợ ‘Fast Norm’ cho LayerNorm và GroupNorm, tránh việc chuyển đổi lên float32 khi dùng AMP (sử dụng APEX LN nếu có sẵn để tăng hiệu suất thêm)

15/08/2022

  • Đã thêm trọng số ConvNeXt atto
    • convnext_atto - 75.7 @ 224, 77.0 @ 288
    • convnext_atto_ols - 75.9 @ 224, 77.2 @ 288

5 tháng 8, 2022

  • Thêm các định nghĩa mô hình ConvNeXt nhỏ hơn tùy chỉnh hơn với trọng số
    • 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
  • Cập nhật EdgeNeXt để cải thiện xuất ONNX, thêm biến thể base mới và trọng số từ bản gốc (https://github.com/mmaaz60/EdgeNeXt)

28 tháng 7 năm 2022

  • Thêm trọng số mô hình DeiT-III Medium (width=512, depth=12, num_heads=8) mới được tạo. Cảm ơn Hugo Touvron!

27 tháng 7 năm 2022

  • Tất cả các tệp csv chứa kết quả benchmark và xác thực thời gian chạy cuối cùng đã được cập nhật!
  • Một số trọng số & định nghĩa mô hình khác được thêm vào:
    • 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* weights trên đều được huấn luyện trên TPU với nhánh bits_and_tpu. Cảm ơn chương trình TRC!
  • Thêm hỗ trợ output_stride=8 và 16 cho ConvNeXt (dilation)
  • Mô hình deit3 không thể thay đổi kích thước pos_emb đã được khắc phục
  • Phiên bản 0.6.7 PyPi release (kèm theo các bản sửa lỗi ở trên và các trọng số mới kể từ 0.6.5)

Ngày 8 tháng 7 năm 2022

Nhiều mô hình hơn, nhiều bản sửa lỗi hơn

  • Các mô hình nghiên cứu chính thức (kèm trọng số) đã được thêm vào:
  • Các model của riêng tôi:
    • Đã thêm các định nghĩa ResNet nhỏ theo yêu cầu, với 1 khối lặp lại cho cả basic và bottleneck (resnet10 và resnet14)
    • CspNet được viết lại với cấu hình dataclass, đơn giản hóa tùy chọn CrossStage3 (cs3). Những định nghĩa này gần với các định nghĩa backbone của YOLO-v5+ hơn.
    • Thêm một chút tinh chỉnh nữa cho vị trí tương đối vit. Hai mô hình srelpos (vị trí tương đối dùng chung) đã được huấn luyện, và một mô hình kích thước trung bình có token lớp.
    • Thêm chế độ downsample thay thế cho EdgeNeXt và huấn luyện một mô hình small. Tốt hơn so với mô hình small gốc, nhưng không bằng trọng số USI mới của họ.
  • Kết quả trọng số mô hình của tôi (tất cả đều huấn luyện trên 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
  • cs3, darknet và vit_*relpos ở trên đều được huấn luyện trên TPU nhờ chương trình TRC! Phần còn lại được huấn luyện trên các GPU bị quá nhiệt.
  • Đã xác nhận các bản sửa lỗi hỗ trợ Hugging Face Hub, notebook demo sẽ được cập nhật sau
  • Trọng số / cấu hình được huấn luyện trước có thể được nạp từ bên ngoài (ví dụ từ ổ đĩa cục bộ) với hỗ trợ thích ứng đầu ra.
  • Thêm hỗ trợ để thay đổi các phần mở rộng hình ảnh được quét bởi các dataset/reader của timm. Xem (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103)
  • Cài đặt LayerNorm mặc định của lớp ConvNeXt được sử dụng F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2) thông qua LayerNorm2d trong mọi trường hợp. Chậm hơn một chút so với cài đặt tùy chỉnh trước đó trên một số phần cứng (ví dụ Ampere có CL), nhưng nhìn chung có ít sự suy giảm hiệu năng hơn trên phạm vi phần cứng / phiên bản PyTorch rộng hơn. Cài đặt trước đó tồn tại dưới dạng LayerNormExp2d trong models/layers/norm.py
    • chậm hơn một chút so với bản triển khai tùy chỉnh trước đó trên một số phần cứng (ví dụ Ampere có CL), nhưng nhìn chung có ít sự suy giảm hiệu năng hơn trên phạm vi phần cứng / phiên bản PyTorch rộng hơn.
    • impl trước đó tồn tại dưới dạng LayerNormExp2d trong models/layers/norm.py
  • Nhiều bản sửa lỗi
  • Đang kiểm tra cho bản phát hành PyPi 0.6.x sắp tới
  • Việc pretraining các mô hình lớn hơn của LeViT vẫn đang trong quá trình phát triển, chúng không được huấn luyện tốt / dễ dàng nếu không có distillation. Đã đến lúc thêm hỗ trợ distill (cuối cùng rồi)?
  • Đang tiến hành huấn luyện + tinh chỉnh trọng số ImageNet-22k, đồng thời phát triển hỗ trợ đa trọng số (chậm rãi) đang dần hoàn thiện (có RẤT NHIỀU trọng số, thở dài) …

Ngày 13 tháng 5 năm 2022

  • Các mô hình và trọng số Swin-V2 chính thức được thêm từ (https://github.com/microsoft/Swin-Transformer). Đã được dọn dẹp để hỗ trợ torchscript.
  • Một số cải tổ cho triển khai Swin-V2-CR timm hiện có, có thể sẽ thực hiện thêm một số điều để đưa các phần gần hơn với bản chính thức và quyết định xem có nên hợp nhất một số khía cạnh hay không.
  • Thêm các thí nghiệm về vị trí tương đối / chuẩn hóa sau phần dư cho Vision Transformer (tất cả được huấn luyện trên TPU nhờ chương trình TRC)
    • vit_relpos_small_patch16_224 - 81.5 @ 224, 82.5 @ 320 — rel pos, layer scale, không có class token, avg pool
    • vit_relpos_medium_patch16_rpn_224 - 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, không có class token, avg pool
    • vit_relpos_medium_patch16_224 - 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, không có class token, avg pool
    • vit_relpos_base_patch16_gapcls_224 - 82.8 @ 224, 83.9 @ 320 — vị trí tương đối, layer scale, class token, avg pool (do nhầm lẫn)
  • Mang lại sức sống cho biến thể mô hình ViT ‘medium’ với 512 chiều, 8 đầu (sau khi được sử dụng trong mô hình ‘small’ trước DeiT cho triển khai ViT đầu tiên vào năm 2020)
  • Thêm hỗ trợ vị trí tương đối ViT để chuyển đổi giữa cài đặt hiện có và một số bổ sung trong cài đặt Swin-V2 chính thức cho các thử nghiệm trong tương lai
  • Cài đặt Sequencer2D (https://arxiv.org/abs/2205.01972), được thêm thông qua PR từ tác giả (https://github.com/okojoalg)

Ngày 2 tháng 5 năm 2022

  • Các thí nghiệm Vision Transformer thêm Relative Position (Swin-V2 log-coord) (vision_transformer_relpos.py) và các nhánh Residual Post-Norm (từ Swin-V2) (vision_transformer*.py)
    • vit_relpos_base_patch32_plus_rpn_256 - 79.5 @ 256, 80.6 @ 320 — rel pos + extended width + res-post-norm, không có class token, avg pool
    • vit_relpos_base_patch16_224 - 82.5 @ 224, 83.6 @ 320 — rel pos, layer scale, không có class token, avg pool
    • vit_base_patch16_rpn_224 - 82.3 @ 224 — rel pos + res-post-norm, không có class token, avg pool
  • Việc tái cấu trúc Vision Transformer để loại bỏ lớp biểu diễn chỉ được sử dụng trong vit ban đầu và hiếm khi được dùng kể từ khi có các phương pháp huấn luyện trước mới hơn (ví dụ How to Train Your ViT)
  • Các mô hình vit_* hỗ trợ việc loại bỏ class token, sử dụng global average pool và sử dụng fc_norm (theo kiểu beit, mae).

Ngày 22 tháng 4 năm 2022

  • Các mô hình timm hiện đã được hỗ trợ chính thức trong fast.ai! Đúng lúc cho khóa học Practical Deep Learning mới. Liên kết tài liệu timmdocs đã được cập nhật thành timm.fast.ai.
  • Thêm hai bộ trọng số mô hình được huấn luyện trên TPU trong dòng. Một số pretrain In22k vẫn đang được tiến hành.
    • seresnext101d_32x8d - 83.69 @ 224, 84.35 @ 288
    • seresnextaa101d_32x8d (chống răng cưa với AvgPool2d) - 83.85 @ 224, 84.57 @ 288

Ngày 23 tháng 3 năm 2022

  • Thêm tùy chọn ParallelBlock và LayerScale vào các mô hình vit cơ bản để hỗ trợ cấu hình mô hình trong Ba điều mọi người nên biết về ViT
  • convnext_tiny_hnf (chuẩn hóa đầu trước) trọng số được huấn luyện theo công thức A2 (gần đúng), đạt 82,2% top-1, có thể cải thiện hơn nếu tăng số epoch.

Ngày 21 tháng 3 năm 2022

  • Gộp norm_norm_norm. QUAN TRỌNG bản cập nhật này cho bản phát hành 0.6.x sắp tới có khả năng sẽ làm mất ổn định nhánh master trong một thời gian. Nhánh 0.5.x hoặc một bản phát hành 0.5.x trước đó có thể được sử dụng nếu cần sự ổn định.
  • Cập nhật trọng số đáng kể (đào tạo trên toàn bộ TPU) như được mô tả trong phiên bản phát hành này
    • 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 pre-act)
    • regnetv_064 - 83.1 @ 224, 83.71 @ 288 (timm pre-act)
    • regnetz_040 - 83.67 @ 256, 84.25 @ 320
    • regnetz_040h - 83.77 @ 256, 84.5 @ 320 (w/ extra fc in head)
    • resnetv2_50d_gn - 80.8 @ 224, 81.96 @ 288 (pre-act GroupNorm)
    • resnetv2_50d_evos 80,77 @ 224, 82,04 @ 288 (pre-act 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 pre-act)
    • xception65 - 83.17 @ 299
    • xception65p - 83.14 @ 299 (timm pre-act)
    • resnext101_64x4d - 82.46 @ 224, 83.16 @ 288
    • seresnext101_32x8d - 83.57 @ 224, 84.270 @ 288
    • resnetrs200 - 83.85 @ 256, 84.44 @ 320
  • Đã sửa hỗ trợ HuggingFace hub cùng với công việc nền tảng ban đầu cho phép các ‘nguồn cấu hình’ thay thế cho định nghĩa và trọng số của mô hình được huấn luyện trước (sẽ sớm hỗ trợ tệp cục bộ chung / URL từ xa)
  • Đã thêm triển khai SwinTransformer-V2. Được gửi bởi Christoph Reich. Các thí nghiệm huấn luyện và thay đổi mô hình do tôi thực hiện vẫn đang tiếp diễn, do đó hãy chuẩn bị cho các vấn đề tương thích.
  • Các mô hình / trọng số Swin-S3 (AutoFormerV2) được thêm từ https://github.com/microsoft/Cream/tree/main/AutoFormerV2
  • Các mô hình MobileViT có trọng số được điều chỉnh từ https://github.com/apple/ml-cvnets
  • Mô hình PoolFormer với trọng số được điều chỉnh từ https://github.com/sail-sg/poolformer
  • Mô hình VOLO với trọng số được điều chỉnh từ https://github.com/sail-sg/volo
  • Công việc đáng kể trong việc thử nghiệm các lớp chuẩn hóa không phải BatchNorm như EvoNorm, FilterResponseNorm, GroupNorm, v.v.
  • Tăng cường hỗ trợ cho các lớp chuẩn hóa + kích hoạt thay thế (‘NormAct’) được thêm vào một số mô hình, đặc biệt là EfficientNet/MobileNetV3, RegNet và Xception đã được đồng bộ
  • Hỗ trợ conv nhóm đã được thêm vào họ EfficientNet
  • Thêm API ‘group matching’ cho tất cả các model để cho phép nhóm các tham số của model nhằm áp dụng suy giảm LR ‘layer-wise’, thêm lr scale vào LR scheduler
  • Hỗ trợ gradient checkpointing đã được thêm vào nhiều mô hình
  • forward_head(x, pre_logits=False) là hàm được thêm vào tất cả các mô hình để cho phép gọi riêng forward_features + forward_head
  • Tất cả các mô hình vision transformer và vision MLP được cập nhật để trả về các đặc trưng không được pool / không được chọn token từ forward_features, nhằm đảm bảo nhất quán với các mô hình CNN; việc chọn token hoặc pool hiện được áp dụng trong forward_head

2 tháng 2, 2022

  • Chris Hughes đã đăng một bài viết chi tiết về timm trên blog của anh ấy vào hôm qua. Rất đáng để đọc. Bắt đầu với PyTorch Image Models (timm): Hướng dẫn cho người thực hành
  • Tôi đang chuẩn bị hợp nhất nhánh norm_norm_norm lại vào master (phiên bản 0.6.x) vào khoảng tuần tới. Các thay đổi lần này rộng hơn bình thường và có thể gây mất ổn định hoặc làm hỏng một số cách sử dụng API của model (mục tiêu là đảm bảo tương thích ngược hoàn toàn). Vì vậy, hãy cẩn thận khi cài đặt bằng lệnh pip install git+https://github.com/rwightman/pytorch-image-models! Các bản phát hành 0.5.x và nhánh 0.5.x sẽ vẫn ổn định với một hoặc hai lần cherry pick cho đến khi mọi thứ ổn định. Khuyến nghị nên dùng cài đặt từ pypi trong một thời gian nếu bạn muốn sự ổn định.
    • Các thay đổi có phạm vi rộng hơn bình thường và có thể gây mất ổn định hoặc làm hỏng một số cách sử dụng API của model (mục tiêu là đảm bảo tương thích ngược hoàn toàn). Vì vậy, hãy cẩn thận khi cài đặt bằng pip install git+https://github.com/rwightman/pytorch-image-models!
    • Các bản phát hành 0.5.x và nhánh 0.5.x sẽ tiếp tục ổn định với một hoặc hai bản cherry pick cho đến khi mọi thứ ổn định. Khuyến nghị bạn nên dùng cài đặt từ pypi trong một thời gian nếu muốn sự ổn định.

14 tháng 1 năm 2022

  • Phiên bản 0.5.4 kèm theo bản phát hành sẽ được đẩy lên pypi. Đã một thời gian kể từ lần cập nhật pypi gần nhất và các thay đổi rủi ro hơn sẽ sớm được hợp nhất vào nhánh main…
  • Thêm các mô hình ConvNeXT /w trọng số từ bản triển khai chính thức (https://github.com/facebookresearch/ConvNeXt), một vài điều chỉnh hiệu năng, tương thích với các tính năng của timm
  • Đã thử huấn luyện một vài mô hình nhỏ (khoảng 1,8-3M tham số) / được tối ưu cho thiết bị di động, một vài mô hình cho kết quả tốt cho đến nay, sẽ có thêm nhiều mô hình khác…
    • 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
  • Các mô hình TinyNet được thêm bởi rsomani95
  • LCNet được thêm vào thông qua kiến trúc MobileNetV3

5 tháng 1, 2023

23 tháng 12, 2022 🎄☃

  • Thêm các mô hình và trọng số FlexiViT từ https://github.com/google-research/big_vision (xem bài báo tại https://arxiv.org/abs/2212.08013)
    • NOTE hiện tại việc thay đổi kích thước là tĩnh khi tạo mô hình, việc lấy mẫu kích thước patch động / trong quá trình huấn luyện là đang phát triển
  • Nhiều mô hình khác đã được cập nhật để hỗ trợ nhiều trọng số và có thể tải xuống qua HF hub (convnext, efficientnet, mobilenet, vision_transformer*, beit)
  • Thêm thẻ model pretrained và các điều chỉnh, một số tên model đã được thay đổi (đang làm việc với các bản dịch deprecation, hãy xem xét nhánh DEV chính ngay bây giờ, sử dụng 0.6.x cho việc sử dụng ổn định)
  • Thêm các mô hình pretrain ImageNet-12k (tập con của 22k) xuất hiện:
    • 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

Ngày 8 tháng 12 năm 2022

  • Thêm ‘EVA l’ vào vision_transformer.py, MAE style ViT-L/14 MIM pretrain w/ EVA-CLIP targets, FT on ImageNet-1k (w/ ImageNet-22k intermediate for some)
modeltop1param_countgmacmactshub
eva_large_patch14_336.in22k_ft_in22k_in1k89.2304.5191.1270.2liên kết
eva_large_patch14_336.in22k_ft_in1k88.7304.5191.1270.2liên kết
eva_large_patch14_196.in22k_ft_in22k_in1k88.6304.161.663.5liên kết
eva_large_patch14_196.in22k_ft_in1k87.9304.161.663.5liên kết

6 tháng 12, 2022

modeltop1param_countgmacmactshub
eva_giant_patch14_560.m30m_ft_in22k_in1k89.81014.41906.82577.2liên kết
eva_giant_patch14_336.m30m_ft_in22k_in1k89.61013620.6550.7liên kết
eva_giant_patch14_336.clip_ft_in1k89.41013620.6550.7liên kết
eva_giant_patch14_224.clip_ft_in1k89.11012.6267.2192.6liên kết

Ngày 5 tháng 12 năm 2022

  • Phiên bản trước khi phát hành (0.8.0dev0) của tính năng hỗ trợ nhiều trọng số (model_arch.pretrained_tag). Cài đặt bằng pip install --pre timm
    • vision_transformer, maxvit, convnext là ba mô hình đầu tiên có hỗ trợ
    • tên model sẽ thay đổi theo điều này (các hàm trước đó như _21k, v.v. sẽ được hợp nhất), vẫn đang xử lý việc quản lý tính năng bị ngừng hỗ trợ
    • Có thể sẽ có lỗi, nhưng tôi cần phản hồi nên vui lòng thử nghiệm
    • nếu cần sự ổn định, vui lòng sử dụng các bản phát hành 0.6.x trên pypi hoặc clone từ nhánh 0.6.x
  • Hỗ trợ cho PyTorch 2.0 compile được thêm vào train/validate/inference/benchmark, sử dụng đối số --torchcompile
  • Script suy luận cho phép kiểm soát đầu ra tốt hơn, chọn k cho chỉ số + xác suất của lớp hàng đầu, đầu ra json, csv hoặc parquet
  • Thêm một bộ trọng số tháp ảnh CLIP tinh chỉnh đầy đủ từ cả các mô hình LAION-2B và OpenAI CLIP gốc
modeltop1param_countgmacmactshub
vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k88.6632.5391407.5liên kết
vit_large_patch14_clip_336.openai_ft_in12k_in1k88.3304.5191.1270.2liên kết
vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k88.2632167.4139.4liên kết
vit_large_patch14_clip_336.laion2b_ft_in12k_in1k88.2304.5191.1270.2liên kết
vit_large_patch14_clip_224.openai_ft_in12k_in1k88.2304.281.188.8liên kết
vit_large_patch14_clip_224.laion2b_ft_in12k_in1k87.9304.281.188.8liên kết
vit_large_patch14_clip_224.openai_ft_in1k87.9304.281.188.8liên kết
vit_large_patch14_clip_336.laion2b_ft_in1k87.9304.5191.1270.2liên kết
vit_huge_patch14_clip_224.laion2b_ft_in1k87.6632167.4139.4liên kết
vit_large_patch14_clip_224.laion2b_ft_in1k87.3304.281.188.8liên kết
vit_base_patch16_clip_384.laion2b_ft_in12k_in1k87.286.955.5101.6liên kết
vit_base_patch16_clip_384.openai_ft_in12k_in1k8786.955.5101.6liên kết
vit_base_patch16_clip_384.laion2b_ft_in1k86.686.955.5101.6liên kết
vit_base_patch16_clip_384.openai_ft_in1k86.286.955.5101.6liên kết
vit_base_patch16_clip_224.laion2b_ft_in12k_in1k86.286.617.623.9liên kết
vit_base_patch16_clip_224.openai_ft_in12k_in1k85.986.617.623.9liên kết
vit_base_patch32_clip_448.laion2b_ft_in12k_in1k85.888.317.923.9liên kết
vit_base_patch16_clip_224.laion2b_ft_in1k85.586.617.623.9liên kết
vit_base_patch32_clip_384.laion2b_ft_in12k_in1k85.488.313.116.5liên kết
vit_base_patch16_clip_224.openai_ft_in1k85.386.617.623.9liên kết
vit_base_patch32_clip_384.openai_ft_in12k_in1k85.288.313.116.5liên kết
vit_base_patch32_clip_224.laion2b_ft_in12k_in1k83.388.24.45liên kết
vit_base_patch32_clip_224.laion2b_ft_in1k82.688.24.45liên kết
vit_base_patch32_clip_224.openai_ft_in1k81.988.24.45liên kết
  • Chuyển đổi trọng số MaxViT Tensorflow từ bản triển khai chính thức tại https://github.com/google-research/maxvit
    • Có sự sụt giảm lớn hơn dự kiến đối với trọng số fine-tune in21k được upscale lên 384/512, có thể do thiếu chi tiết, nhưng 21k FT dường như nhạy cảm với các thay đổi nhỏ trong tiền xử lý
modeltop1param_countgmacmactshub
maxvit_xlarge_tf_512.in21k_ft_in1k88.5475.8534.11413.2liên kết
maxvit_xlarge_tf_384.in21k_ft_in1k88.3475.3292.8668.8liên kết
maxvit_base_tf_512.in21k_ft_in1k88.2119.9138704liên kết
maxvit_large_tf_512.in21k_ft_in1k88212.3244.8942.2liên kết
maxvit_large_tf_384.in21k_ft_in1k88212132.6445.8liên kết
maxvit_base_tf_384.in21k_ft_in1k87.9119.673.8332.9liên kết
maxvit_base_tf_512.in1k86.6119.9138704liên kết
maxvit_large_tf_512.in1k86.5212.3244.8942.2liên kết
maxvit_base_tf_384.in1k86.3119.673.8332.9liên kết
maxvit_large_tf_384.in1k86.2212132.6445.8liên kết
maxvit_small_tf_512.in1k86.169.167.3383.8liên kết
maxvit_tiny_tf_512.in1k85.73133.5257.6liên kết
maxvit_small_tf_384.in1k85.56935.9183.6liên kết
maxvit_tiny_tf_384.in1k85.13117.5123.4liên kết
maxvit_large_tf_224.in1k84.9211.843.7127.4liên kết
maxvit_base_tf_224.in1k84.9119.52495liên kết
maxvit_small_tf_224.in1k84.468.911.753.2liên kết
maxvit_tiny_tf_224.in1k83.430.95.635.8liên kết

15 tháng 10, 2022

  • Nâng cấp cho script huấn luyện và kiểm
  • Hỗ trợ thiết bị không phải GPU (tức là CPU)
  • Tương thích SLURM cho script huấn luyện
  • Hỗ trợ bộ dữ liệu HF (thông qua ReaderHfds)
  • Cải thiện việc nạp dữ liệu TFDS/WDS (đệm mẫu/vòng lặp cho việc sử dụng phân tán đã được sửa liên quan đến ước tính số lượng mẫu)
  • hỗ trợ in_chans !=3 cho scripts / loader
  • Trình tối ưu Adan
  • Có thể bật lịch trình LR cho từng bước thông qua args
  • Bộ dữ liệu ‘parsers’ được đổi tên thành ‘readers’, mô tả rõ hơn mục đích
  • Tham số AMP đã thay đổi, APEX thông qua --amp-impl apex, hỗ trợ bfloat16 thông qua --amp-dtype bfloat16
  • main branch đã chuyển sang phiên bản 0.7.x, 0.6x được fork để phát hành ổn định các tính năng chỉ thêm trọng số
  • đổi tên nhánh master -> main

10 tháng 10, 2022

  • Thêm nhiều trọng số trong maxxvit dòng coatnext và maxxvit thí nghiệm:
    • coatnext_nano_rw_224 - 82.0 @ 224 (G) — (sử dụng khối conv của ConvNeXt, không có BatchNorm)
    • maxxvit_rmlp_nano_rw_256 - 83.0 @ 256, 83.7 @ 320 (G) (sử dụng khối conv của ConvNeXt, không có BN)
    • maxvit_rmlp_small_rw_224 - 84.5 @ 224, 85.1 @ 320 (G)
    • maxxvit_rmlp_small_rw_256 - 84.6 @ 256, 84.9 @ 288 (G) — có thể được huấn luyện tốt hơn, các siêu tham số cần được tinh chỉnh (sử dụng khối ConvNeXt, không có BN)
    • coatnet_rmlp_2_rw_224 - 84.6 @ 224, 85 @ 320 (T)
    • NOTE: trọng số MaxVit chính thức (in1k) đã được phát hành tại https://github.com/google-research/maxvit — cần thêm một số công việc để chuyển đổi và điều chỉnh vì bản triển khai của tôi được tạo độc lập với của họ và có một vài khác biệt nhỏ + toàn bộ vấn đề về same padding trong TF.

23 tháng 9 năm 2022

  • Các image tower của LAION-2B CLIP được hỗ trợ làm backbone pretrained để fine-tune hoặc trích xuất đặc trưng (không có classifier)
    • vit_base_patch32_224_clip_laion2b
    • vit_large_patch14_224_clip_laion2b
    • vit_huge_patch14_224_clip_laion2b
    • vit_giant_patch14_224_clip_laion2b

7 tháng 9, 2022

  • Trang chủ tài liệu timm của Hugging Face hiện đã có, hãy tìm thêm tại đây trong tương lai
  • Thêm trọng số BEiT-v2 cho các mô hình base và large 224x224 từ https://github.com/microsoft/unilm/tree/master/beit2
  • Thêm nhiều trọng số hơn vào maxxvit dòng pico (7.5bao gồm một tiny biến thể:
    • maxvit_rmlp_pico_rw_256 - 80.5 @ 256, 81.3 @ 320 (T)
    • maxvit_tiny_rw_224 - 83.5 @ 224 (G)
    • maxvit_rmlp_tiny_rw_256 - 84.2 @ 256, 84.8 @ 320 (T)

29 tháng 8, 2022

  • Kích thước cửa sổ của MaxVit mặc định sẽ thay đổi theo img_size. Thêm trọng số RelPosMlp MaxViT mới tận dụng điều này:
    • maxvit_rmlp_nano_rw_256 - 83.0 @ 256, 83.6 @ 320 (T)

26 tháng 8, 2022

  • CoAtNet (https://arxiv.org/abs/2106.04803) và MaxVit (https://arxiv.org/abs/2204.01697) timm các mô hình gốc của timm
    • đều được tìm thấy trong định nghĩa mô hình maxxvit.py, chứa nhiều thí nghiệm nằm ngoài phạm vi của các bài báo gốc
    • Một phiên bản Tensorflow chưa hoàn thiện từ các tác giả của MaxVit có thể được tìm thấy tại https://github.com/google-research/maxvit
  • Trọng số pretrained ban đầu của CoAtNet và MaxVit trong timm (đang làm thêm):
    • coatnet_nano_rw_224 - 81.7 @ 224 (T)
    • coatnet_rmlp_nano_rw_224 - 82.0 @ 224, 82.8 @ 320 (T)
    • coatnet_0_rw_224 - 82.4 (T) — LƯU Ý các coatnet ‘0’ của timm có thêm 2 khối giai đoạn 3
    • coatnet_bn_0_rw_224 - 82.4 (T)
    • maxvit_nano_rw_256 - 82.9 @ 256 (T)
    • coatnet_rmlp_1_rw_224 - 83.4 @ 224, 84 @ 320 (T)
    • coatnet_1_rw_224 - 83.6 @ 224 (G)
    • (T) = TPU được huấn luyện bằng mã huấn luyện của nhánh bits_and_tpu, (G) = GPU được huấn luyện
  • GCVit (trọng số được điều chỉnh từ https://github.com/NVlabs/GCVit, mã được viết lại 100% từ timm vì lý do giấy phép)
  • MViT-V2 (vit đa tỷ lệ, được điều chỉnh từ https://github.com/facebookresearch/mvit)
  • EfficientFormer (được điều chỉnh từ https://github.com/snap-research/EfficientFormer)
  • PyramidVisionTransformer-V2 (được điều chỉnh từ https://github.com/whai362/PVT)
  • Hỗ trợ ‘Fast Norm’ cho LayerNorm và GroupNorm, tránh việc chuyển đổi lên float32 khi dùng AMP (sử dụng APEX LN nếu có sẵn để tăng hiệu suất thêm)

15/08/2022

  • Đã thêm trọng số ConvNeXt atto
    • convnext_atto - 75.7 @ 224, 77.0 @ 288
    • convnext_atto_ols - 75.9 @ 224, 77.2 @ 288

5 tháng 8, 2022

  • Thêm các định nghĩa mô hình ConvNeXt nhỏ hơn tùy chỉnh hơn với trọng số
    • 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
  • Cập nhật EdgeNeXt để cải thiện xuất ONNX, thêm biến thể base mới và trọng số từ bản gốc (https://github.com/mmaaz60/EdgeNeXt)

28 tháng 7 năm 2022

  • Thêm trọng số mô hình DeiT-III Medium (width=512, depth=12, num_heads=8) mới được tạo. Cảm ơn Hugo Touvron!

27 tháng 7 năm 2022

  • Tất cả các tệp csv chứa kết quả kiểm tra hiệu năng và xác thực thời gian chạy đều đã được cập nhật!
  • Một số trọng số & định nghĩa mô hình khác được thêm vào:
    • 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* weights trên đều được huấn luyện trên TPU với nhánh bits_and_tpu. Cảm ơn chương trình TRC!
  • Thêm hỗ trợ output_stride=8 và 16 cho ConvNeXt (dilation)
  • Mô hình deit3 không thể thay đổi kích thước pos_emb đã được khắc phục
  • Phiên bản 0.6.7 PyPi release (kèm theo các bản sửa lỗi ở trên và các trọng số mới kể từ 0.6.5)

Ngày 8 tháng 7 năm 2022

Nhiều mô hình hơn, nhiều bản sửa lỗi hơn

  • Các mô hình nghiên cứu chính thức (kèm trọng số) đã được thêm vào:
  • Các model của riêng tôi:
    • Đã thêm các định nghĩa ResNet nhỏ theo yêu cầu, với 1 khối lặp lại cho cả basic và bottleneck (resnet10 và resnet14)
    • CspNet được viết lại với cấu hình dataclass, đơn giản hóa tùy chọn CrossStage3 (cs3). Những định nghĩa này gần với các định nghĩa backbone của YOLO-v5+ hơn.
    • Thêm một chút tinh chỉnh nữa cho vị trí tương đối vit. Hai mô hình srelpos (vị trí tương đối dùng chung) đã được huấn luyện, và một mô hình kích thước trung bình có token lớp.
    • Thêm chế độ downsample thay thế cho EdgeNeXt và huấn luyện một mô hình small. Tốt hơn so với mô hình small gốc, nhưng không bằng trọng số USI mới của họ.
  • Kết quả trọng số mô hình của tôi (tất cả đều huấn luyện trên 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
  • cs3, darknet và vit_*relpos ở trên đều được huấn luyện trên TPU nhờ chương trình TRC! Phần còn lại được huấn luyện trên các GPU bị quá nhiệt.
  • Đã xác nhận các bản sửa lỗi hỗ trợ Hugging Face Hub, notebook demo sẽ được cập nhật sau
  • Trọng số / cấu hình được huấn luyện trước có thể được nạp từ bên ngoài (ví dụ từ ổ đĩa cục bộ) với hỗ trợ thích ứng đầu ra.
  • Thêm hỗ trợ để thay đổi các phần mở rộng hình ảnh được quét bởi các dataset/parser của timm. Xem (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103)
  • Cài đặt LayerNorm mặc định của lớp ConvNeXt được sử dụng F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2) thông qua LayerNorm2d trong mọi trường hợp. Chậm hơn một chút so với cài đặt tùy chỉnh trước đó trên một số phần cứng (ví dụ Ampere có CL), nhưng nhìn chung có ít sự suy giảm hiệu năng hơn trên phạm vi phần cứng / phiên bản PyTorch rộng hơn. Cài đặt trước đó tồn tại dưới dạng LayerNormExp2d trong models/layers/norm.py
    • chậm hơn một chút so với bản triển khai tùy chỉnh trước đó trên một số phần cứng (ví dụ Ampere có CL), nhưng nhìn chung có ít sự suy giảm hiệu năng hơn trên phạm vi phần cứng / phiên bản PyTorch rộng hơn.
    • impl trước đó tồn tại dưới dạng LayerNormExp2d trong models/layers/norm.py
  • Nhiều bản sửa lỗi
  • Đang kiểm tra cho bản phát hành PyPi 0.6.x sắp tới
  • Việc pretraining các mô hình lớn hơn của LeViT vẫn đang trong quá trình phát triển, chúng không được huấn luyện tốt / dễ dàng nếu không có distillation. Đã đến lúc thêm hỗ trợ distill (cuối cùng rồi)?
  • Đang tiến hành huấn luyện + tinh chỉnh trọng số ImageNet-22k, đồng thời phát triển hỗ trợ đa trọng số (chậm rãi) đang dần hoàn thiện (có RẤT NHIỀU trọng số, thở dài) …

Ngày 13 tháng 5 năm 2022

  • Các mô hình và trọng số Swin-V2 chính thức được thêm từ (https://github.com/microsoft/Swin-Transformer). Đã được dọn dẹp để hỗ trợ torchscript.
  • Một số cải tổ cho triển khai Swin-V2-CR timm hiện có, có thể sẽ thực hiện thêm một số điều để đưa các phần gần hơn với bản chính thức và quyết định xem có nên hợp nhất một số khía cạnh hay không.
  • Thêm các thí nghiệm về vị trí tương đối / chuẩn hóa sau phần dư cho Vision Transformer (tất cả được huấn luyện trên TPU nhờ chương trình TRC)
    • vit_relpos_small_patch16_224 - 81.5 @ 224, 82.5 @ 320 — rel pos, layer scale, không có class token, avg pool
    • vit_relpos_medium_patch16_rpn_224 - 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, không có class token, avg pool
    • vit_relpos_medium_patch16_224 - 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, không có class token, avg pool
    • vit_relpos_base_patch16_gapcls_224 - 82.8 @ 224, 83.9 @ 320 — vị trí tương đối, layer scale, class token, avg pool (do nhầm lẫn)
  • Mang lại sức sống cho biến thể mô hình ViT ‘medium’ với 512 chiều, 8 đầu (sau khi được sử dụng trong mô hình ‘small’ trước DeiT cho triển khai ViT đầu tiên vào năm 2020)
  • Thêm hỗ trợ vị trí tương đối ViT để chuyển đổi giữa cài đặt hiện có và một số bổ sung trong cài đặt Swin-V2 chính thức cho các thử nghiệm trong tương lai
  • Cài đặt Sequencer2D (https://arxiv.org/abs/2205.01972), được thêm thông qua PR từ tác giả (https://github.com/okojoalg)

Ngày 2 tháng 5 năm 2022

  • Các thí nghiệm Vision Transformer thêm Relative Position (Swin-V2 log-coord) (vision_transformer_relpos.py) và các nhánh Residual Post-Norm (từ Swin-V2) (vision_transformer*.py)
    • vit_relpos_base_patch32_plus_rpn_256 - 79.5 @ 256, 80.6 @ 320 — rel pos + extended width + res-post-norm, không có class token, avg pool
    • vit_relpos_base_patch16_224 - 82.5 @ 224, 83.6 @ 320 — rel pos, layer scale, không có class token, avg pool
    • vit_base_patch16_rpn_224 - 82.3 @ 224 — rel pos + res-post-norm, không có class token, avg pool
  • Việc tái cấu trúc Vision Transformer để loại bỏ lớp biểu diễn chỉ được sử dụng trong vit ban đầu và hiếm khi được dùng kể từ khi có các phương pháp huấn luyện trước mới hơn (ví dụ How to Train Your ViT)
  • Các mô hình vit_* hỗ trợ việc loại bỏ class token, sử dụng global average pool và sử dụng fc_norm (theo kiểu beit, mae).

Ngày 22 tháng 4 năm 2022

  • Các mô hình timm hiện đã được hỗ trợ chính thức trong fast.ai! Đúng lúc cho khóa học Practical Deep Learning mới. Liên kết tài liệu timmdocs đã được cập nhật thành timm.fast.ai.
  • Thêm hai bộ trọng số mô hình được huấn luyện trên TPU trong dòng. Một số pretrain In22k vẫn đang được tiến hành.
    • seresnext101d_32x8d - 83.69 @ 224, 84.35 @ 288
    • seresnextaa101d_32x8d (chống răng cưa với AvgPool2d) - 83.85 @ 224, 84.57 @ 288

Ngày 23 tháng 3 năm 2022

  • Thêm tùy chọn ParallelBlock và LayerScale vào các mô hình vit cơ bản để hỗ trợ cấu hình mô hình trong Ba điều mọi người nên biết về ViT
  • convnext_tiny_hnf (chuẩn hóa đầu trước) trọng số được huấn luyện theo công thức A2 (gần đúng), đạt 82,2% top-1, có thể cải thiện hơn nếu tăng số epoch.

Ngày 21 tháng 3 năm 2022

  • Gộp norm_norm_norm. QUAN TRỌNG bản cập nhật này cho bản phát hành 0.6.x sắp tới có khả năng sẽ làm mất ổn định nhánh master trong một thời gian. Nhánh 0.5.x hoặc một bản phát hành 0.5.x trước đó có thể được sử dụng nếu cần sự ổn định.
  • Cập nhật trọng số đáng kể (đào tạo trên toàn bộ TPU) như được mô tả trong phiên bản phát hành này
    • 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 pre-act)
    • regnetv_064 - 83.1 @ 224, 83.71 @ 288 (timm pre-act)
    • regnetz_040 - 83.67 @ 256, 84.25 @ 320
    • regnetz_040h - 83.77 @ 256, 84.5 @ 320 (w/ extra fc in head)
    • resnetv2_50d_gn - 80.8 @ 224, 81.96 @ 288 (pre-act GroupNorm)
    • resnetv2_50d_evos 80,77 @ 224, 82,04 @ 288 (pre-act 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 pre-act)
    • xception65 - 83.17 @ 299
    • xception65p - 83.14 @ 299 (timm pre-act)
    • resnext101_64x4d - 82.46 @ 224, 83.16 @ 288
    • seresnext101_32x8d - 83.57 @ 224, 84.270 @ 288
    • resnetrs200 - 83.85 @ 256, 84.44 @ 320
  • Đã sửa hỗ trợ HuggingFace hub cùng với công việc nền tảng ban đầu cho phép các ‘nguồn cấu hình’ thay thế cho định nghĩa và trọng số của mô hình được huấn luyện trước (sẽ sớm hỗ trợ tệp cục bộ chung / URL từ xa)
  • Đã thêm triển khai SwinTransformer-V2. Được gửi bởi Christoph Reich. Các thí nghiệm huấn luyện và thay đổi mô hình do tôi thực hiện vẫn đang tiếp diễn, do đó hãy chuẩn bị cho các vấn đề tương thích.
  • Các mô hình / trọng số Swin-S3 (AutoFormerV2) được thêm từ https://github.com/microsoft/Cream/tree/main/AutoFormerV2
  • Các mô hình MobileViT có trọng số được điều chỉnh từ https://github.com/apple/ml-cvnets
  • Mô hình PoolFormer với trọng số được điều chỉnh từ https://github.com/sail-sg/poolformer
  • Mô hình VOLO với trọng số được điều chỉnh từ https://github.com/sail-sg/volo
  • Công việc đáng kể trong việc thử nghiệm các lớp chuẩn hóa không phải BatchNorm như EvoNorm, FilterResponseNorm, GroupNorm, v.v.
  • Tăng cường hỗ trợ cho các lớp chuẩn hóa + kích hoạt thay thế (‘NormAct’) được thêm vào một số mô hình, đặc biệt là EfficientNet/MobileNetV3, RegNet và Xception đã được đồng bộ
  • Hỗ trợ conv nhóm đã được thêm vào họ EfficientNet
  • Thêm API ‘group matching’ cho tất cả các model để cho phép nhóm các tham số của model nhằm áp dụng suy giảm LR ‘layer-wise’, thêm lr scale vào LR scheduler
  • Hỗ trợ gradient checkpointing đã được thêm vào nhiều mô hình
  • forward_head(x, pre_logits=False) là hàm được thêm vào tất cả các mô hình để cho phép gọi riêng forward_features + forward_head
  • Tất cả các mô hình vision transformer và vision MLP được cập nhật để trả về các đặc trưng không được pool / không được chọn token từ forward_features, nhằm đảm bảo nhất quán với các mô hình CNN; việc chọn token hoặc pool hiện được áp dụng trong forward_head

2 tháng 2, 2022

  • Chris Hughes đã đăng một bài viết chi tiết về timm trên blog của anh ấy vào hôm qua. Rất đáng để đọc. Bắt đầu với PyTorch Image Models (timm): Hướng dẫn cho người thực hành
  • Tôi đang chuẩn bị hợp nhất nhánh norm_norm_norm lại vào master (phiên bản 0.6.x) vào khoảng tuần tới. Các thay đổi lần này rộng hơn bình thường và có thể gây mất ổn định hoặc làm hỏng một số cách sử dụng API của model (mục tiêu là đảm bảo tương thích ngược hoàn toàn). Vì vậy, hãy cẩn thận khi cài đặt bằng lệnh pip install git+https://github.com/rwightman/pytorch-image-models! Các bản phát hành 0.5.x và nhánh 0.5.x sẽ vẫn ổn định với một hoặc hai lần cherry pick cho đến khi mọi thứ ổn định. Khuyến nghị nên dùng cài đặt từ pypi trong một thời gian nếu bạn muốn sự ổn định.
    • Các thay đổi có phạm vi rộng hơn bình thường và có thể gây mất ổn định hoặc làm hỏng một số cách sử dụng API của model (mục tiêu là đảm bảo tương thích ngược hoàn toàn). Vì vậy, hãy cẩn thận khi cài đặt bằng pip install git+https://github.com/rwightman/pytorch-image-models!
    • Các bản phát hành 0.5.x và nhánh 0.5.x sẽ tiếp tục ổn định với một hoặc hai bản cherry pick cho đến khi mọi thứ ổn định. Khuyến nghị bạn nên dùng cài đặt từ pypi trong một thời gian nếu muốn sự ổn định.

14 tháng 1 năm 2022

  • Phiên bản 0.5.4 kèm theo bản phát hành sẽ được đẩy lên pypi. Đã một thời gian kể từ lần cập nhật pypi gần nhất và các thay đổi rủi ro hơn sẽ sớm được hợp nhất vào nhánh main…
  • Thêm các mô hình ConvNeXT /w trọng số từ bản triển khai chính thức (https://github.com/facebookresearch/ConvNeXt), một vài điều chỉnh hiệu năng, tương thích với các tính năng của timm
  • Đã thử huấn luyện một vài mô hình nhỏ (khoảng 1,8-3M tham số) / được tối ưu cho thiết bị di động, một vài mô hình cho kết quả tốt cho đến nay, sẽ có thêm nhiều mô hình khác…
    • 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
  • Các mô hình TinyNet được thêm bởi rsomani95
  • LCNet được thêm vào thông qua kiến trúc MobileNetV3
Update on GitHub