timm documentation
Nhật ký thay đổi
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ớiprune_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ỗiprune_head=Truesẽ 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ềnprune_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_sizekhớ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_sizelà 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à saureset_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=0là embedding của class token (khớp vớiforward_head(pre_logits=True)),reset_classifier()củavit_pe_corevới pool không phảimapsẽ loại bỏ attention pool, xuất loại pool quasave_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.pymới: tìm kiếm lưới / ngẫu nhiên trên bất kỳ đối số nào củatrain.py, một--confighiệ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 autotiếp tục huấn luyện tại chỗ từlast.pth.tarcủa chính thí nghiệm (lịch sử checkpoint,model_bestvàsummary.csvvẫn nhất quán),--stop-epoch Ndừng mà không thay đổi lịch trình,--save-epochs N [N ...]giữ lại các bản chụpmilestone-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ủatimmlà 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ùngcosinehoặcwsd. - 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 raTypeErrorở mọi nơi,dynamic_img_sizecủa họ Swin, suy giảm lr theo lớp cho LeViT, các tênno_weight_decaykhô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 đếntimm.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.gradin-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.
- 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
- 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_ratiotheo từng giai đoạn. Sửa lỗi các mô hình Swin S3 và SwinV2window16/window12thay đổ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.pyvớ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 multilabelvàotrain.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 đọchfds,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.
- Thêm
- 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_typevànormalize_coordsvà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_halftrongRotaryEmbeddingcó đầu ra dạng tuple và biến thể nhà máybase. - 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_catvàapply_rot_embed_listtrả 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
bandsgiờ được giữ lại ở cả chế độ có cache và chế độ động (rope.bandskhô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
- CPUBone, một bộ khung thị giác hiệu quả cho các thiết bị có khả năng song song hóa thấp.
- PP-LCNetV2.
- LingBot-Vision.
- 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.compilevà 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
- Thêm định nghĩa mô hình và trọng số được huấn luyện trước cho các mô hình EUPE ViT (kiểu DINOv3) và ConvNeXt. Xem bài báo về Efficient Universal Perception Encoder.
- Thêm định nghĩa mô hình TIPSv2 và trọng số được huấn luyện trước cho các ViT (kiểu DINOv2). Xem bài báo TIPSv2.
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_causalcho 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.
- Không ảnh hưởng đến bất kỳ mô hình
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
- Thêm các mô hình ViT (differential) được huấn luyện bằng NAdaMuon tốt hơn
dpwee,dwee,dlittle(với hiệu suất nhỉnh hơn so với các lần chạy trước - Thêm một biến thể ~21M tham số
timmcủa mô hình CSATv2 ở kích thước 512x512 & 640x640- https://huggingface.co/timm/csatv2_21m.sw_r640_in1k (83,13% top-1)
- https://huggingface.co/timm/csatv2_21m.sw_r512_in1k (82,58% top-1)
- Tách việc khởi tạo tham số không lưu trữ (non-persistent) ra khỏi
__init__thành một phương thức chung, có thể được gọi từ bên ngoài thông quainit_non_persistent_buffers()sau khi khởi tạo trên meta-device.
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
- Gộp differential attention (
DiffAttention), thêm tương ứngDiffParallelScalingBlock(cho ViT), huấn luyện một số ViT nhỏ - Thêm một vài module pooling,
LsePlusvàSimPool - Dọn dẹp, tối ưu hóa
DropBlock2d(cũng thêm hỗ trợ cho các mô hình dựa trên ByobNet)
- Gộp differential attention (
- 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ớisat_493m->sat493m) - Phiên bản 1.0.20
17 tháng 9, 2025
- DINOv3 (https://arxiv.org/abs/2508.10104) Đã thêm các mô hình ConvNeXt và ViT. Các mô hình ConvNeXt được ánh xạ sang mô hình
timmcó sẵn. Hỗ trợ ViT được thực hiện thông qua mô hình cơ sở EVA vớiRotaryEmbeddingDinoV3mới để khớp với cách triển khai RoPE đặc thù của DINOv3 - Bộ mã hóa thị giác của MobileCLIP-2 (https://arxiv.org/abs/2508.20691). Đã thêm các biến thể FastViT mới MCI3/MCI4 và ánh xạ trọng số sang các ViT FastViT và B, L/14 hiện có.
- Đã thêm trọng số bộ mã hóa ViT của MetaCLIP-2 Worldwide (https://arxiv.org/abs/2507.22062).
- SigLIP-2 (https://arxiv.org/abs/2502.14786) Trọng số của bộ mã hóa NaFlex ViT được thêm thông qua mô hình timm NaFlexViT.
- Các sửa lỗi và đóng góp khác
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,timmSBB ViT w/ ROPE, và Naver ROPE-ViT giờ có thể được nạp trong NaFlexViT khiuse_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
| model | img_size | top1 | top5 | param_count |
|---|---|---|---|---|
| vit_large_patch16_rope_mixed_ape_224.naver_in1k | 224 | 84.84 | 97.122 | 304.4 |
| vit_large_patch16_rope_mixed_224.naver_in1k | 224 | 84.828 | 97.116 | 304.2 |
| vit_large_patch16_rope_ape_224.naver_in1k | 224 | 84.65 | 97.154 | 304.37 |
| vit_large_patch16_rope_224.naver_in1k | 224 | 84.648 | 97.122 | 304.17 |
| vit_base_patch16_rope_mixed_ape_224.naver_in1k | 224 | 83.894 | 96.754 | 86.59 |
| vit_base_patch16_rope_mixed_224.naver_in1k | 224 | 83.804 | 96.712 | 86.44 |
| vit_base_patch16_rope_ape_224.naver_in1k | 224 | 83.782 | 96.61 | 86.59 |
| vit_base_patch16_rope_224.naver_in1k | 224 | 83.718 | 96.672 | 86.43 |
| vit_small_patch16_rope_224.naver_in1k | 224 | 81.23 | 95.022 | 21.98 |
| vit_small_patch16_rope_mixed_224.naver_in1k | 224 | 81.216 | 95.022 | 21.99 |
| vit_small_patch16_rope_ape_224.naver_in1k | 224 | 81.004 | 95.016 | 22.06 |
| vit_small_patch16_rope_mixed_ape_224.naver_in1k | 224 | 80.986 | 94.976 | 22.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-5 Số tham số (M) Độ dài chuỗi đánh giá naflexvit_base_patch16_par_gap.e300_s576_in1k 83.67 96.45 86.63 576 naflexvit_base_patch16_parfac_gap.e300_s576_in1k 83.63 96.41 86.46 576 naflexvit_base_patch16_gap.e300_s576_in1k 83.50 96.46 86.63 576 Hỗ trợ gradient checkpointing cho
forward_intermediatesvà sửa một số lỗi checkpointing. Cảm ơn https://github.com/brianhou0208Thê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:
- Nén embedding và mã hóa vị trí trong một module duy nhất
- Hỗ trợ nhúng patch của nn.Linear trên đầu vào đã được chia patch (từ điển)
- 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)
- Hỗ trợ kích thước patch biến đổi của FlexiViT (https://arxiv.org/abs/2212.08013)
- 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.pycó thể được nạp vào mô hình NaFlexVit bằng cách thêm cờuse_naflex=Truevàocreate_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.pyvàvalidate.pyhãy thêm đối số--naflex-loader, phải được sử dụng cùng với NaFlexVit
- Để bật trong
- Để đá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 24sẽ 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-scalethay đổi chế độ scale loss theo từng batch so với kích thước batch, việc nạp NaFlex củatimmthay đổi kích thước batch cho mỗi độ dài chuỗi
- Lập luận
Ngày 28 tháng 5 năm 2025
- Thêm một số mô hình nhỏ/nhanh nhờ vào https://github.com/brianhou0208
- SwiftFormer - (ICCV2023) SwiftFormer: Chú ý cộng hiệu quả cho các ứng dụng thị giác di động thời gian thực dựa trên Transformer
- FasterNet - (CVPR2023) Chạy, Đừng Đi Bộ: Săn Tìm FLOPS Cao Hơn Cho Mạng Nơ-ron Nhanh Hơn
- SHViT - (CVPR2024) SHViT: Single-Head Vision Transformer with Memory Efficient
- StarNet - (CVPR2024) Viết lại các vì sao
- GhostNet-V3 GhostNetV3: Khám phá các chiến lược huấn luyện cho các mô hình nhỏ gọn
- Cập nhật EVA ViT (phù hợp nhất) để hỗ trợ các mô hình Perception Encoder (https://arxiv.org/abs/2504.13181) từ Meta, tải trọng số từ Hub nhưng tôi vẫn cần đẩy các trọng số chuyên dụng
timmcủa- Thêm một số tính linh hoạt cho triển khai ROPE
- Số lượng model hỗ trợ tăng đáng kể
forward_intermediates()và một số sửa lỗi bổ sung nhờ https://github.com/brianhou0208- DaViT, EdgeNeXt, EfficientFormerV2, EfficientViT(MIT), EfficientViT(MSRA), FocalNet, GCViT, HGNet /V2, InceptionNeXt, Inception-V4, MambaOut, MetaFormer, NesT, Next-ViT, PiT, PVT V2, RepGhostNet, RepViT, ResNetV2, ReXNet, TinyViT, TResNet, VoV
- Mô hình TNT đã được cập nhật với các trọng số mới
forward_intermediates()nhờ https://github.com/brianhou0208 - Thêm schema
local-dir:pretrained, có thể dùnglocal-dir:/path/to/model/folderlàm tên model để lấy model / pretrained cfg & weights từ các model Hugging Face Hub (config.json + file weights) trong một thư mục cục bộ. - Sửa lỗi, cải tiến cho xuất onnx
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-1vit_so150m2_patch16_reg1_gap_384.sbb_e200_in12k_ft_in1k- 87,9% top-1vit_so150m2_patch16_reg1_gap_256.sbb_e200_in12k_ft_in1k- 87,3% top-1vit_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
- Thêm Kron Optimizer (PSGD với bộ tiền điều kiện phân tích Kronecker)
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-1vit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k- 87,4% top-1vit_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
bfloat16hoặcfloat16thuầ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()trongtimm.modelsvới mặc định làuse_reentrant=False, trừ khiTIMM_REENTRANT_CKPT=1được đặt trong biến môi trường.
31 tháng 12 năm 2024
convnext_nano384x384 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
RmsNormhiệ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ớpSimpleNorm, đây là LN không có centering hay bias. Chỉ có hai mô hìnhtimmsử dụng nó, và chúng đã được cập nhật. - Cho phép ghi đè tham số
cache_dirkhi tạo model - Truyền
trust_remote_codecho 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ớiTimmWrapperModelmới của Transformers
28 tháng 11, 2024
- Nhiều optimizer hơn
- Thêm bộ tối ưu MARS (https://arxiv.org/abs/2411.10438, https://github.com/AGI-Arena/MARS)
- Thêm trình tối ưu LaProp (https://arxiv.org/abs/2002.04839, https://github.com/Z-T-WANG/LaProp-Optimizer)
- Thêm masking từ ‘Cautious Optimizers’ (https://arxiv.org/abs/2411.16085, https://github.com/kyleliang919/C-Optim) vào Adafactor, Adafactor Big Vision, AdamW (legacy), Adopt, Lamb, LaProp, Lion, NadamW, RMSPropTF, SGDW
- Dọn dẹp một số docstring và chú thích kiểu liên quan đến optimizer và factory
- Thêm các mô hình MobileNet-V4 Conv Medium được huấn luyện trước trên in12k và tinh chỉnh trên in1k @ 384x384
- Thêm cs3darknet nhỏ, khá tốt về tốc độ
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_infovào hàmcreate_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 sangoptim/_optim_factory.pyvàoptim/_param_groups.pyvà khuyến khích import thông quatimm.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
timmdưới dạngvit_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.
- SigLIP SO400M ViT được fine-tune trên ImageNet-1k @ 378x378, thêm tùy chọn 378x378 cho các mô hình SigLIP 384x384 hiện có
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89,42 top-1
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- Bộ mã hóa ViT SigLIP SO400M từ biến thể đa ngôn ngữ (i18n) gần đây, patch16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256). Đang chờ cập nhật OpenCLIP.
- Thêm hai mô hình ConvNeXt ‘Zepto’ và trọng số (một mô hình có stem chồng lấn và một mô hình có stem patch). Sử dụng RMSNorm, nhỏ hơn ‘Atto’ trước đó, 2,2M tham số.
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 top-1 @ 224
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
Tháng 9 năm 2024
- Thêm một bộ các mô hình kiểm thử nhỏ để cải thiện các bài kiểm thử đơn vị và các ứng dụng ngách có ít tài nguyên (https://huggingface.co/blog/rwightman/timm-tiny-test)
- Thêm mô hình MobileNetV4-Conv-Small (0.5x) (https://huggingface.co/posts/rwightman/793053396198664)
- mobilenetv4_conv_small_050.e3000_r224_in1k - 65,81 top-1 @ 256, 64,76 @ 224
- Thêm các biến thể MobileNetV3-Large được huấn luyện với công thức MNV4 Small
- mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81,81 @ 320, 80,94 @ 256
- mobilenetv3_large_100.ra4_e3600_r224_in1k - 77,16 @ 256, 76,31 @ 224
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
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| vit_mediumd_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 87.438 | 98.256 | 64.11 | 384 |
| vit_mediumd_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 86.608 | 97.934 | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_384.sbb2_e200_in12k_ft_in1k | 86.594 | 98.02 | 60.4 | 384 |
| vit_betwixt_patch16_reg4_gap_256.sbb2_e200_in12k_ft_in1k | 85.734 | 97.61 | 60.4 | 256 |
- 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
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
| efficientnet_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
| resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
| efficientnet_b1.ra4_e3600_r240_in1k | 80.406 | 95.152 | 7.79 | 240 |
| mobilenetv1_125.ra4_e3600_r224_in1k | 77.600 | 93.804 | 6.27 | 256 |
| mobilenetv1_125.ra4_e3600_r224_in1k | 76.924 | 93.234 | 6.27 | 224 |
- 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
| model | top1 | top5 | param_count |
|---|---|---|---|
| hiera_small_abswin_256.sbb2_e200_in12k_ft_in1k | 84.912 | 97.260 | 35.01 |
| hiera_small_abswin_256.sbb2_pd_e200_in12k_ft_in1k | 84.560 | 97.106 | 35.01 |
8 tháng 8, 2024
- Thêm RDNet (‘DenseNets Reloaded’, https://arxiv.org/abs/2403.19588), cảm ơn Donghyun Kim
28 tháng 7 năm 2024
- Thêm trọng số
mobilenet_edgetpu_v2_mvới công thức dựa trênra4mnv4-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
| model | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.99 | 15.01 | 97.294 | 2.706 | 32.59 | 544 |
| mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.772 | 15.228 | 97.344 | 2.656 | 32.59 | 480 |
| mobilenetv4_conv_aa_large.e230_r448_in12k_ft_in1k | 84.64 | 15.36 | 97.114 | 2.886 | 32.59 | 448 |
| mobilenetv4_conv_aa_large.e230_r384_in12k_ft_in1k | 84.314 | 15.686 | 97.102 | 2.898 | 32.59 | 384 |
| mobilenetv4_conv_aa_large.e600_r384_in1k | 83.824 | 16.176 | 96.734 | 3.266 | 32.59 | 480 |
| mobilenetv4_conv_aa_large.e600_r384_in1k | 83.244 | 16.756 | 96.392 | 3.608 | 32.59 | 384 |
| mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.99 | 17.01 | 96.67 | 3.33 | 11.07 | 320 |
| mobilenetv4_hybrid_medium.e200_r256_in12k_ft_in1k | 82.364 | 17.636 | 96.256 | 3.744 | 11.07 | 256 |
- Các thử thách baseline ấn tượng của MobileNet-V1 và EfficientNet-B0 (https://huggingface.co/blog/rwightman/mobilenet-baselines)
| model | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| efficientnet_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
| efficientnet_b0.ra4_e3600_r224_in1k | 78.584 | 21.416 | 94.338 | 5.662 | 5.29 | 224 |
| mobilenetv1_100h.ra4_e3600_r224_in1k | 76.596 | 23.404 | 93.272 | 6.728 | 5.28 | 256 |
| mobilenetv1_100.ra4_e3600_r224_in1k | 76.094 | 23.906 | 93.004 | 6.996 | 4.23 | 256 |
| mobilenetv1_100h.ra4_e3600_r224_in1k | 75.662 | 24.338 | 92.504 | 7.496 | 5.28 | 224 |
| mobilenetv1_100.ra4_e3600_r224_in1k | 75.382 | 24.618 | 92.312 | 7.688 | 4.23 | 224 |
- 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_partitionvà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
| model | top1 | top1_err | top5 | top5_err | param_count | img_size | crop_pct |
|---|---|---|---|---|---|---|---|
| test_efficientnet.r160_in1k | 47.156 | 52.844 | 71.726 | 28.274 | 0.36 | 192 | 1.0 |
| test_byobnet.r160_in1k | 46.698 | 53.302 | 71.674 | 28.326 | 0.46 | 192 | 1.0 |
| test_efficientnet.r160_in1k | 46.426 | 53.574 | 70.928 | 29.072 | 0.36 | 160 | 0.875 |
| test_byobnet.r160_in1k | 45.378 | 54.622 | 70.572 | 29.428 | 0.46 | 160 | 0.875 |
| test_vit.r160_in1k | 42.0 | 58.0 | 68.664 | 31.336 | 0.37 | 192 | 1.0 |
| test_vit.r160_in1k | 40.822 | 59.178 | 67.212 | 32.788 | 0.37 | 160 | 0.875 |
- 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
| model | top1 | top1_err | top5 | top5_err | param_count | img_size |
|---|---|---|---|---|---|---|
| mobilenetv4_hybrid_large.ix_e600_r384_in1k | 84.356 | 15.644 | 96.892 | 3.108 | 37.76 | 448 |
| mobilenetv4_hybrid_large.ix_e600_r384_in1k | 83.990 | 16.010 | 96.702 | 3.298 | 37.76 | 384 |
| mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 83.394 | 16.606 | 96.760 | 3.240 | 11.07 | 448 |
| mobilenetv4_hybrid_medium.ix_e550_r384_in1k | 82.968 | 17.032 | 96.474 | 3.526 | 11.07 | 384 |
| mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 82.492 | 17.508 | 96.278 | 3.722 | 11.07 | 320 |
| mobilenetv4_hybrid_medium.ix_e550_r256_in1k | 81.446 | 18.554 | 95.704 | 4.296 | 11.07 | 256 |
- 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:
- 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 (chochug) - 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.
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| vit_mediumd_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 86.202 | 97.874 | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in12k_ft_in1k | 85.418 | 97.48 | 60.4 | 256 |
| vit_mediumd_patch16_rope_reg1_gap_256.sbb_in1k | 84.322 | 96.812 | 63.95 | 256 |
| vit_betwixt_patch16_rope_reg4_gap_256.sbb_in1k | 83.906 | 96.684 | 60.23 | 256 |
| vit_base_patch16_rope_reg1_gap_256.sbb_in1k | 83.866 | 96.67 | 86.43 | 256 |
| vit_medium_patch16_rope_reg1_gap_256.sbb_in1k | 83.81 | 96.824 | 38.74 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in1k | 83.706 | 96.616 | 60.4 | 256 |
| vit_betwixt_patch16_reg1_gap_256.sbb_in1k | 83.628 | 96.544 | 60.4 | 256 |
| vit_medium_patch16_reg4_gap_256.sbb_in1k | 83.47 | 96.622 | 38.88 | 256 |
| vit_medium_patch16_reg1_gap_256.sbb_in1k | 83.462 | 96.548 | 38.88 | 256 |
| vit_little_patch16_reg4_gap_256.sbb_in1k | 82.514 | 96.262 | 22.52 | 256 |
| vit_wee_patch16_reg1_gap_256.sbb_in1k | 80.256 | 95.360 | 13.42 | 256 |
| vit_pwee_patch16_reg1_gap_256.sbb_in1k | 80.072 | 95.136 | 15.25 | 256 |
| vit_mediumd_patch16_reg4_gap_256.sbb_in12k | N/A | N/A | 64.11 | 256 |
| vit_betwixt_patch16_reg4_gap_256.sbb_in12k | N/A | N/A | 60.4 | 256 |
- 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=Truecho 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
datasetscủa HF và wrapper webdataset streaming từ HF hub với các bản tải lên ImageNet gần đây củatimmtạ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 224hoặ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
- Đã thêm tính linh hoạt đáng kể cho các mô hình timm dựa trên Hugging Face Hub thông qua
model_argsmục cấu hình.model_argssẽ được truyền dưới dạng kwargs đến các mô hình khi tạo. - Đã cập nhật các tệp csv cho bộ đánh giá và bộ kiểm tra imagenet với các mô hình mới nhất
vision_transformer.pydọn dẹp kiểu và tài liệu bởi Laureηt- Phiên bản 0.9.11
Ngày 3 tháng 11 năm 2023
- Đã thêm trọng số ViT của DFN (Data Filtering Networks) và MetaCLIP
- Đã thêm trọng số mô hình ViT ‘register’ của DINOv2 (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
- Thêm các biến thể ViT
quickgelucho trọng số OpenAI, DFN, MetaCLIP sử dụng nó (ít hiệu quả hơn) - Cải thiện kiểu dữ liệu đã được thêm vào ResNet, MobileNet-v3 nhờ Aryan
- Fine-tuned trên ImageNet-12k (từ LAION-2B CLIP)
convnext_xxlarge - Phiên bản 0.9.9
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.pymà 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=Truevà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_sizekhá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
- Thêm
25 tháng 8, 2023
- Nhiều mô hình mới kể từ lần phát hành trước
- FastViT - https://arxiv.org/abs/2303.14189
- MobileOne - https://arxiv.org/abs/2206.04040
- InceptionNeXt - https://arxiv.org/abs/2303.16900
- RepGhostNet - https://arxiv.org/abs/2211.06088 (cảm ơn https://github.com/ChengpengChen)
- GhostNetV2 - https://arxiv.org/abs/2211.12905 (cảm ơn https://github.com/yehuitang)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027 (cảm ơn https://github.com/seefun)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756 (cảm ơn https://github.com/seefun)
- Thêm
--reparamtham sốbenchmark.py,onnx_export.py, vàvalidate.pyđể kích hoạt tái tham số hóa / hợp nhất lớp cho các mô hình có bất kỳ một trong cácreparameterize(),switch_to_deploy()hoặcfuse()- Bao gồm FastViT, MobileOne, RepGhostNet, EfficientViT (MSRA), RepViT, RepVGG và LeViT
- Chuẩn bị phát hành 0.9.6 “trở lại trường học”
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
timm0.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_layersthử 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=Truevà 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
timmra 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-scalevà--head-init-biasvà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
- Tất cả các trọng số đã được huấn luyện trong quá khứ của
- Đã 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 @ 288resnetaa101d.sw_in12k_ft_in1k- 83.5 @ 224, 84.1 @ 288seresnextaa101d_32x8d.sw_in12k_ft_in1k- 86.0 @ 224, 86.5 @ 288seresnextaa101d_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.
| model | top1 | top5 | img_size | param_count | gmacs | macts |
|---|---|---|---|---|---|---|
| convnext_xxlarge.clip_laion2b_soup_ft_in1k | 88.612 | 98.704 | 256 | 846.47 | 198.09 | 124.45 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 | 88.312 | 98.578 | 384 | 200.13 | 101.11 | 126.74 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 | 87.968 | 98.47 | 320 | 200.13 | 70.21 | 88.02 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 | 87.138 | 98.212 | 384 | 88.59 | 45.21 | 84.49 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k | 86.344 | 97.97 | 256 | 88.59 | 20.09 | 37.55 |
- 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.
| model | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| eva02_large_patch14_448.mim_m38m_ft_in22k_in1k | 90.054 | 99.042 | 305.08 | 448 |
| eva02_large_patch14_448.mim_in22k_ft_in22k_in1k | 89.946 | 99.01 | 305.08 | 448 |
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.792 | 98.992 | 1014.45 | 560 |
| eva02_large_patch14_448.mim_in22k_ft_in1k | 89.626 | 98.954 | 305.08 | 448 |
| eva02_large_patch14_448.mim_m38m_ft_in1k | 89.57 | 98.918 | 305.08 | 448 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.56 | 98.956 | 1013.01 | 336 |
| eva_giant_patch14_336.clip_ft_in1k | 89.466 | 98.82 | 1013.01 | 336 |
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.214 | 98.854 | 304.53 | 336 |
| eva_giant_patch14_224.clip_ft_in1k | 88.882 | 98.678 | 1012.56 | 224 |
| eva02_base_patch14_448.mim_in22k_ft_in22k_in1k | 88.692 | 98.722 | 87.12 | 448 |
| eva_large_patch14_336.in22k_ft_in1k | 88.652 | 98.722 | 304.53 | 336 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.592 | 98.656 | 304.14 | 196 |
| eva02_base_patch14_448.mim_in22k_ft_in1k | 88.23 | 98.564 | 87.12 | 448 |
| eva_large_patch14_196.in22k_ft_in1k | 87.934 | 98.504 | 304.14 | 196 |
| eva02_small_patch14_336.mim_in22k_ft_in1k | 85.74 | 97.614 | 22.13 | 336 |
| eva02_tiny_patch14_336.mim_in22k_ft_in1k | 80.658 | 95.524 | 5.76 | 336 |
- 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
timmcủarexnetr_200.sw_in12k_ft_in1k- 82.6 @ 224, 83.2 @ 288rexnetr_300.sw_in12k_ft_in1k- 84.0 @ 224, 84.5 @ 288regnety_120.sw_in12k_ft_in1k- 85.0 @ 224, 85.4 @ 288regnety_160.lion_in12k_ft_in1k- 85.6 @ 224, 86.0 @ 288regnety_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_xxlargethà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_320vàconvnext_large_mlp.clip_laion2b_ft_soup_320cho 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% @ 256x256convnext_base.clip_laiona_augreg_ft_in1k_384- 86.5% @ 384x384convnext_large_mlp.clip_laion2b_augreg_ft_in1k- 87.3% @ 256x256convnext_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=Truecho các biến thểconvmới, cần ánh xạ lại trọng số.
- 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ợ
- Di chuyển dữ liệu meta của ImageNet (synsets, indices) từ
/resultssangtimm/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
- Cập nhật
- 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 @ 384convnext_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
rwbase MaxViT và CoAtNet 1/2
| model | top1 | top5 | mẫu / giây | Số tham số (M) | GMAC | Hành động (M) |
|---|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.53 | 98.64 | 21.76 | 475.77 | 534.14 | 1413.22 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.32 | 98.54 | 42.53 | 475.32 | 292.78 | 668.76 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.20 | 98.53 | 50.87 | 119.88 | 138.02 | 703.99 |
| maxvit_large_tf_512.in21k_ft_in1k | 88.04 | 98.40 | 36.42 | 212.33 | 244.75 | 942.15 |
| maxvit_large_tf_384.in21k_ft_in1k | 87.98 | 98.56 | 71.75 | 212.03 | 132.55 | 445.84 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.92 | 98.54 | 104.71 | 119.65 | 73.80 | 332.90 |
| maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.81 | 98.37 | 106.55 | 116.14 | 70.97 | 318.95 |
| maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.47 | 98.37 | 149.49 | 116.09 | 72.98 | 213.74 |
| coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k | 87.39 | 98.31 | 160.80 | 73.88 | 47.69 | 209.43 |
| maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.89 | 98.02 | 375.86 | 116.14 | 23.15 | 92.64 |
| maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.64 | 98.02 | 501.03 | 116.09 | 24.20 | 62.77 |
| maxvit_base_tf_512.in1k | 86.60 | 97.92 | 50.75 | 119.88 | 138.02 | 703.99 |
| coatnet_2_rw_224.sw_in12k_ft_in1k | 86.57 | 97.89 | 631.88 | 73.87 | 15.09 | 49.22 |
| maxvit_large_tf_512.in1k | 86.52 | 97.88 | 36.04 | 212.33 | 244.75 | 942.15 |
| coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k | 86.49 | 97.90 | 620.58 | 73.88 | 15.18 | 54.78 |
| maxvit_base_tf_384.in1k | 86.29 | 97.80 | 101.09 | 119.65 | 73.80 | 332.90 |
| maxvit_large_tf_384.in1k | 86.23 | 97.69 | 70.56 | 212.03 | 132.55 | 445.84 |
| maxvit_small_tf_512.in1k | 86.10 | 97.76 | 88.63 | 69.13 | 67.26 | 383.77 |
| maxvit_tiny_tf_512.in1k | 85.67 | 97.58 | 144.25 | 31.05 | 33.49 | 257.59 |
| maxvit_small_tf_384.in1k | 85.54 | 97.46 | 188.35 | 69.02 | 35.87 | 183.65 |
| maxvit_tiny_tf_384.in1k | 85.11 | 97.38 | 293.46 | 30.98 | 17.53 | 123.42 |
| maxvit_large_tf_224.in1k | 84.93 | 96.97 | 247.71 | 211.79 | 43.68 | 127.35 |
| coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k | 84.90 | 96.96 | 1025.45 | 41.72 | 8.11 | 40.13 |
| maxvit_base_tf_224.in1k | 84.85 | 96.99 | 358.25 | 119.47 | 24.04 | 95.01 |
| maxxvit_rmlp_small_rw_256.sw_in1k | 84.63 | 97.06 | 575.53 | 66.01 | 14.67 | 58.38 |
| coatnet_rmlp_2_rw_224.sw_in1k | 84.61 | 96.74 | 625.81 | 73.88 | 15.18 | 54.78 |
| maxvit_rmlp_small_rw_224.sw_in1k | 84.49 | 96.76 | 693.82 | 64.90 | 10.75 | 49.30 |
| maxvit_small_tf_224.in1k | 84.43 | 96.83 | 647.96 | 68.93 | 11.66 | 53.17 |
| maxvit_rmlp_tiny_rw_256.sw_in1k | 84.23 | 96.78 | 807.21 | 29.15 | 6.77 | 46.92 |
| coatnet_1_rw_224.sw_in1k | 83.62 | 96.38 | 989.59 | 41.72 | 8.04 | 34.60 |
| maxvit_tiny_rw_224.sw_in1k | 83.50 | 96.50 | 1100.53 | 29.06 | 5.11 | 33.11 |
| maxvit_tiny_tf_224.in1k | 83.41 | 96.59 | 1004.94 | 30.92 | 5.60 | 35.78 |
| coatnet_rmlp_1_rw_224.sw_in1k | 83.36 | 96.45 | 1093.03 | 41.69 | 7.85 | 35.47 |
| maxxvitv2_nano_rw_256.sw_in1k | 83.11 | 96.33 | 1276.88 | 23.70 | 6.26 | 23.05 |
| maxxvit_rmlp_nano_rw_256.sw_in1k | 83.03 | 96.34 | 1341.24 | 16.78 | 4.37 | 26.05 |
| maxvit_rmlp_nano_rw_256.sw_in1k | 82.96 | 96.26 | 1283.24 | 15.50 | 4.47 | 31.92 |
| maxvit_nano_rw_256.sw_in1k | 82.93 | 96.23 | 1218.17 | 15.45 | 4.46 | 30.28 |
| coatnet_bn_0_rw_224.sw_in1k | 82.39 | 96.19 | 1600.14 | 27.44 | 4.67 | 22.04 |
| coatnet_0_rw_224.sw_in1k | 82.39 | 95.84 | 1831.21 | 27.44 | 4.43 | 18.73 |
| coatnet_rmlp_nano_rw_224.sw_in1k | 82.05 | 95.87 | 2109.09 | 15.15 | 2.62 | 20.34 |
| coatnext_nano_rw_224.sw_in1k | 81.95 | 95.92 | 2525.52 | 14.70 | 2.47 | 12.80 |
| coatnet_nano_rw_224.sw_in1k | 81.70 | 95.64 | 2344.52 | 15.14 | 2.41 | 15.41 |
| maxvit_rmlp_pico_rw_256.sw_in1k | 80.53 | 95.21 | 1594.71 | 7.52 | 1.85 | 24.86 |
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
.in12ktags)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 @ 288convnext_small.in12k_ft_in1k- 85.2 @ 224, 85.3 @ 288
6 tháng 1, 2023
- Cuối cùng cũng đã thêm
--model-kwargsvà--opt-kwargsvà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 modeltrain.py --data-dir /imagenet --model resnet50 --amp --model-kwargs output_stride=16 act_layer=silutrain.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
- Các mô hình và trọng số ConvNeXt-V2 đã được thêm vào
convnext.py- Bài báo: ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
- Impl tham chiếu: https://github.com/facebookresearch/ConvNeXt-V2 (LƯU Ý: trọng số hiện tại CC-BY-NC) @dataclass
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 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_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)- nguồn gốc: https://github.com/baaivision/EVA
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | liên kết |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | liên kết |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | liên kết |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | liên kết |
6 tháng 12, 2022
- Thêm trọng số của mô hình ViT-g/14 theo phong cách BEiT, ‘EVA g’, với cả tiền huấn luyện MIM và tiền huấn luyện CLIP vào
beit.py.- nguồn gốc: https://github.com/baaivision/EVA
- bài báo: https://arxiv.org/abs/2211.07636
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | liên kết |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | liên kết |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | liên kết |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | liê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ằngpip 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
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | liên kết |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | liên kết |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | liên kết |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | liên kết |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | liên kết |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | liên kết |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | liên kết |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | liên kết |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | liên kết |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | liên kết |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | liên kết |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | liê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ý
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | liên kết |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | liên kết |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | liên kết |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | liên kết |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | liên kết |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | liên kết |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | liên kết |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | liên kết |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | liên kết |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | liên kết |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | liên kết |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | liên kết |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | liên kết |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | liên kết |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | liên kết |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | liên kết |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | liên kết |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | liê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
maxxvitdòngcoatnextvàmaxxvitthí 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
timmcủ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
maxxvitdòngpico(7.5bao gồm mộttinybiế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)
timmcá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
- đều được tìm thấy trong định nghĩa mô hình
- 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 3coatnet_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ừ
timmvì 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 @ 288convnext_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 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_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 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
cs3*weights trên đều được huấn luyện trên TPU với nhánhbits_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:
- EdgeNeXt từ (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 từ (https://github.com/apple/ml-cvnets)
- DeiT III (Revenge of the ViT) from (https://github.com/facebookresearch/deit)
- Các model của riêng tôi:
- Đã thêm các định nghĩa
ResNetnhỏ 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ọ.
- Đã thêm các định nghĩa
- 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 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
cs3,darknetvà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 quaLayerNorm2dtrong 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
LayerNormExp2dtrongmodels/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
timmhiệ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 poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, không có class token, avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, không có class token, avg poolvit_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 poolvit_relpos_base_patch16_224- 82.5 @ 224, 83.6 @ 320 — rel pos, layer scale, không có class token, avg poolvit_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
timmhiệ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ệutimmdocsđã đượ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 @ 288seresnextaa101d_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
ParallelBlockvàLayerScalevà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ánh0.5.xhoặ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 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_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 @ 320regnetz_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_evos80,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 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 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êngforward_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 trongforward_head
2 tháng 2, 2022
- Chris Hughes đã đăng một bài viết chi tiết về
timmtrê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_normlạ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.xvà nhánh0.5.xsẽ 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.
- 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
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-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_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
- Các mô hình và trọng số ConvNeXt-V2 đã được thêm vào
convnext.py- Bài báo: ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
- Impl tham chiếu: https://github.com/facebookresearch/ConvNeXt-V2 (LƯU Ý: trọng số hiện tại CC-BY-NC)
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 @ 448x448vit_medium_patch16_gap_384.in12k_ft_in1k- 85.5 @ 384x384vit_medium_patch16_gap_256.in12k_ft_in1k- 84.5 @ 256x256convnext_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)- nguồn gốc: https://github.com/baaivision/EVA
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | liên kết |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | liên kết |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | liên kết |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | liên kết |
6 tháng 12, 2022
- Thêm trọng số của mô hình ViT-g/14 theo phong cách BEiT, ‘EVA g’, với cả tiền huấn luyện MIM và tiền huấn luyện CLIP vào
beit.py.- nguồn gốc: https://github.com/baaivision/EVA
- bài báo: https://arxiv.org/abs/2211.07636
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | liên kết |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | liên kết |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | liên kết |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | liê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ằngpip 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
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | liên kết |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | liên kết |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | liên kết |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | liên kết |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | liên kết |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | liên kết |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | liên kết |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | liên kết |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | liên kết |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | liên kết |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | liên kết |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | liên kết |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | liên kết |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | liên kết |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | liê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ý
| model | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | liên kết |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | liên kết |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | liên kết |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | liên kết |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | liên kết |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | liên kết |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | liên kết |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | liên kết |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | liên kết |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | liên kết |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | liên kết |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | liên kết |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | liên kết |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | liên kết |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | liên kết |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | liên kết |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | liên kết |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | liê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
maxxvitdòngcoatnextvàmaxxvitthí 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
timmcủ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
maxxvitdòngpico(7.5bao gồm mộttinybiế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)
timmcá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
- đều được tìm thấy trong định nghĩa mô hình
- 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 3coatnet_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ừ
timmvì 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 @ 288convnext_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 @ 288convnext_femto_ols- 77.9 @ 224, 78.9 @ 288convnext_pico- 79.5 @ 224, 80.4 @ 288convnext_pico_ols- 79.5 @ 224, 80.5 @ 288convnext_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 @ 288convnext_nano- 80.8 @ 224, 81.5 @ 288cs3sedarknet_l- 81.2 @ 256, 81.8 @ 288cs3darknet_x- 81.8 @ 256, 82.2 @ 288cs3sedarknet_x- 82.2 @ 256, 82.7 @ 288cs3edgenet_x- 82.2 @ 256, 82.7 @ 288cs3se_edgenet_x- 82.8 @ 256, 83.5 @ 320
cs3*weights trên đều được huấn luyện trên TPU với nhánhbits_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:
- EdgeNeXt từ (https://github.com/mmaaz60/EdgeNeXt)
- MobileViT-V2 từ (https://github.com/apple/ml-cvnets)
- DeiT III (Revenge of the ViT) from (https://github.com/facebookresearch/deit)
- Các model của riêng tôi:
- Đã thêm các định nghĩa
ResNetnhỏ 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ọ.
- Đã thêm các định nghĩa
- 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 @ 224resnet14t- 71.3 @ 176, 72.3 @ 224resnetaa50- 80.6 @ 224 , 81.6 @ 288darknet53- 80.0 @ 256, 80.5 @ 288cs3darknet_m- 77.0 @ 256, 77.6 @ 288cs3darknet_focus_m- 76.7 @ 256, 77.3 @ 288cs3darknet_l- 80.4 @ 256, 80.9 @ 288cs3darknet_focus_l- 80.3 @ 256, 80.9 @ 288vit_srelpos_small_patch16_224- 81.1 @ 224, 82.1 @ 320vit_srelpos_medium_patch16_224- 82.3 @ 224, 83.1 @ 320vit_relpos_small_patch16_cls_224- 82.6 @ 224, 83.6 @ 320edgnext_small_rw- 79.6 @ 224, 80.4 @ 320
cs3,darknetvà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 quaLayerNorm2dtrong 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
LayerNormExp2dtrongmodels/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
timmhiệ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 poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, không có class token, avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, không có class token, avg poolvit_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 poolvit_relpos_base_patch16_224- 82.5 @ 224, 83.6 @ 320 — rel pos, layer scale, không có class token, avg poolvit_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
timmhiệ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ệutimmdocsđã đượ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 @ 288seresnextaa101d_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
ParallelBlockvàLayerScalevà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ánh0.5.xhoặ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 @ 288regnety_064- 83.0 @ 224, 83.65 @ 288regnety_080- 83.17 @ 224, 83.86 @ 288regnetv_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 @ 320regnetz_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_evos80,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 @ 299xception65p- 83.14 @ 299 (timm pre-act)resnext101_64x4d- 82.46 @ 224, 83.16 @ 288seresnext101_32x8d- 83.57 @ 224, 84.270 @ 288resnetrs200- 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êngforward_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 trongforward_head
2 tháng 2, 2022
- Chris Hughes đã đăng một bài viết chi tiết về
timmtrê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_normlạ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.xvà nhánh0.5.xsẽ 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.
- 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
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-1mobilenetv2_050- 65.9lcnet_100/075/050- 72.1 / 68.8 / 63.1semnasnet_075- 73fbnetv3_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