timm documentation
변경 이력
변경 이력
2026년 11월 3일
reset_classifier()및 체크포인트 재구성: ViT, EVA, BEiT, NaFlexViT, RepViT, iFormer 전반에 걸친 수정 클래시파이어 또는 풀링을 변경한 후 모델을 내보내거나 다시 로드할 때 정규화 배치 및 증류 설정을 유지합니다. 또한 풀링되지 않은 PiT 내보내기 및 증류가 비활성화된 EfficientFormerV2도 수정했습니다.- NaFlex: 변환 시 ViT / EVA의 norm 배치 수정, DINOv3 / Lingbot 체크포인트에 대한 SwiGLU 정렬 지원, 데이터 로더에서 회색 / 비-RGB 입력 채널 유지.
- RepViT, HGNet, MViTv2 및 pre-norm ViT의 레이어별 LR decay 그룹 설정과
output_stride=8/16인 InceptionNeXt의 feature size를 수정합니다. - 1.0.31 릴리스.
2026년 10월 24일
forward_intermediates()와prune_intermediate_layers()는 이제 모든 모델에서 지원됩니다. CSPNet, NFNet, DLA, DenseNet(#2870, ghaith-mq 감사합니다), CoaT, ConViT, ConvMixer, CrossViT, HRNet, Inception-v3, Inception-ResNet-v2, NASNet, PNASNet, SelecSLS, SENet, Sequencer2d, VGG, Visformer, Xception, Aligned Xception에 새로 추가되었으며, NaFlexViT와 MobileNetV5 인코더에는prune_intermediate_layers()가 추가되었습니다. CoaT, ConViT, ConvMixer, CrossViT, Visformer에는features_only지원이 추가되었습니다.prune_intermediate_layers()수정 사항prune_head=True는 전체 헤드(head norm, pre-logits 레이어, attention pooling)를 제거하여, 일부 병렬 스케일/브랜치만 선택된 CoaT, CrossViT, HRNet을 제외하고는 사용되지 않는 파라미터가 남지 않는 모델(DDP w/ofind_unused_parameters)을 생성합니다. 헤드를 유지하려면prune_head=False를 전달하세요.- 계층적 모델을 이전 단계로 Pruning하면 마지막 단계에 맞게 설정된 최종 norm과 head가 제거되며,
forward_features()는 마지막으로 유지된 feature에서 끝나고num_features/head_hidden_size가 해당 feature와 일치합니다. stem feature로 Pruning하면 그 이후의 stem pooling이 제거됩니다. stop_early, 클래스 토큰 / 네트워크 후처리 제거, 그리고 여러 모델 계열에서 프루닝된 모델 및feature_cls='getter'모델의 TorchScript에 대한 grad checkpointing 수정 사항.
head_hidden_size는 concat pooling(catavgmax)을 포함하여 모든 모델에서 실제 pre-logits(pooled) 폭이며,reset_classifier()호출 후에도 동일합니다. 모델이 현재 적용할 수 없는 pooling 타입은 더 이상 조용히 무시되거나 forward에서 실패하지 않고, 생성 또는 reset 시점에 예외가 발생합니다.- 기타 수정 사항: VOLO의
num_classes=0출력은 클래스 토큰 임베딩입니다(forward_head(pre_logits=True)와 일치).vit_pe_core의reset_classifier()를map이 아닌 풀링으로 사용할 경우 어텐션 풀링이 제거되며,save_for_hf를 통한 풀링 유형 내보내기는 헤드의 현재 풀링을 읽습니다. 또한 헤드리스(num_classes=0) Swin, SwinV2, DaViT 및 NextViT 체크포인트가 올바르게 다시 로드됩니다.
2026년 10월 13일
- 새로운
sweep.py를 통한 하이퍼파라미터 스윕:train.py의 모든 인자에 대해 그리드/랜덤 탐색을 수행하며, 각 작업마다 하나의 유효한--config를 사용하고, 로컬 GPU 풀에서 실행되며 재개할 수 있습니다. WSD 스윕은 하이퍼파라미터 조합마다 하나의 안정된 트렁크를 학습하고, 해당 마일스톤 체크포인트에서 독립적인 쿨다운을 분기하여, 전체 실행 비용의 일부로 여러 예산에서 어닐링을 비교합니다. 학습 문서를 참조하세요. train.py:--resume auto는 실험 자체의last.pth.tar에서 제자리로 재개합니다(체크포인트 히스토리,model_best,summary.csv가 일관되게 유지됩니다),--stop-epoch N은 스케줄을 변경하지 않고 중단하며,--save-epochs N [N ...]은milestone-N.pth.tar스냅샷을 유지하고, YAML--config값은 스크립트의 인자와 대조하여 검증됩니다.PlateauLRScheduler(--sched plateau)를 비추천으로 변경합니다.timm스케줄러는 epoch 또는 업데이트 횟수의 무상태 함수이며, 지표 기반 plateau 스케줄은 이에 맞지 않았고 그 상태가 체크포인트에 저장되지 않아 재개가 정확하지 않았습니다.cosine또는wsd를 사용하세요.- Docs: 새로운 Model API 페이지, 기존 모델별 페이지를 대체하는 모든 모델 모듈에 대한 생성된 모델 패밀리 페이지, 그리고 확장된 data / loss / models 참조 페이지.
- Model API 일관성 수정:
reset_classifier()가 모든 모델에서 현재 pooling을 유지하고, 알려지지 않은 생성자 인자는 모든 곳에서TypeError를 발생시키며, Swin 계열의dynamic_img_size, LeViT의 레이어별 lr 감쇠, 매개변수에 매칭되지 않던no_weight_decay이름(NesT, SwinV2, XCiT, FocalNet), 모든set_input_size계열에 대한 resize 상태 기록. - Fixes: GCViT의 배치 내 전역 쿼리 혼합 이미지 문제, RDNet 및 MobileNetV5의 gradient checkpointing,
save_for_hf의 오래된 테스트 입력 크기, EfficientViT (MSRA)의 직사각형 리사이즈, ImageDataset의 이미지 변환 오류 (#2846).reparameterize_model이timm.models로 이동되었습니다.
2026년 10월 9일
- OpenMMLab에서 변환한 ImageNet-1k 분류 가중치를 갖춘 CSPNeXt(RTMDet backbone)
cspnext_{tiny,s,m,l,x}를 추가했습니다. Munehiro Kobayashi님께 감사드립니다. - 옵티마이저 개선
- RMSpropTF, LaProp, LAMB, LARS, AdaBelief에 대한 Foreach(멀티 텐서) 구현. Foreach 단계는 디바이스 L2 캐시 크기 기준으로 분할됩니다(
TIMM_FOREACH_CHUNK_SIZE로 재정의 가능). - AdamWLegacy / NAdamW의 RMS 업데이트 클리핑(
clipping_threshold), 새로운 분리형 / 수정된 weight decay NovoGrad 변형(novogradw,novogradc). - Kron, AdaBelief, NovoGrad를 포함한 많은 옵티마이저에 대한 정확성 수정 사항으로, in-place 업데이트된 텐서의 lr을 사용한 weight decay 수정, 작은 lr에서의 FP16 업데이트 정지 문제, 저정밀도 상태 처리, 그리고 더 이상
p.grad를 in-place로 수정하지 않습니다. - Adopt, SGDW, AdafactorBV에 대한
torch.compile/ CUDA graph 수정 사항. - 사용법, 명명 규칙, 패밀리(가족)를 다루는 새로운 옵티마이저 문서.
- RMSpropTF, LaProp, LAMB, LARS, AdaBelief에 대한 Foreach(멀티 텐서) 구현. Foreach 단계는 디바이스 L2 캐시 크기 기준으로 분할됩니다(
- WSD(warmup-stable-decay) LR 스케줄러(
--sched wsd,--lr-decay-fn,--lr-stable-timescale)를 추가합니다. - bfloat16 / float16 모델에 대한 Model EMA 수정 사항. ModelEmaV3의 bfloat16 EMA는 기본적으로 stochastic rounding을 사용하며, float16 모델은 float32 EMA를 유지합니다.
- 을(를) 통한 모델 리사이징
set_input_size()- 윈도우 기반 모델(MaxViT, CoAtNet, BEiT, EfficientViT-MSRA, relpos ViT, Swin 계열)에 대한 지원 범위 확장.
- Swin / SwinV2 / SwinV2-CR은 리사이즈 시 각 스테이지의 window to grid 비율을 유지하며, 현재 크기로 호출하면 이제 no-op가 됩니다. 스테이지별
window_size/window_ratio를 지원합니다. 동일한 크기로 호출할 때 출력이 변경되던 Swin S3 및 SwinV2window16/window12모델을 수정했습니다. - 1의 윈도우 크기, 홀수 단계 특징 크기, CUDA / 저정밀도 환경에서의 하이브리드 ViT 리사이즈로 인한 SwinV2 NaN 문제를 수정합니다.
train.py의--sched none, eval center crop의 비정사각형 입력 보간, grad accumulation remainder 처리(#2821), 소규모 데이터셋의 분산 샘플링/반복 증강, 사전학습 소스 오버라이드 및 증류 teacher 설정을 수정했습니다.- PyTorch 버전 전반에 걸친 ONNX 내보내기 호환성 수정, dropout 일관성 수정, 기타 meta-device 초기화 수정 사항.
2026년 9월 25일
- 멀티 라벨 분류 지원
train.py/validate.py에--task multilabel를 추가하고, BCE(MultiLabelClassificationTask)로 학습합니다. 자세한 내용은 학습 문서를 참고하세요.- Targets는 클래스 인덱스의 목록, dense multi-hot 벡터(
--target-format multihot), 또는 클래스당 하나의 binary 필드(--target-key a,b,c)일 수 있으며,/경로를 사용하여 중첩된 필드에 접근할 수 있습니다.hfds,hfids,tfds(multi-field keys),wds리더에서 지원됩니다. - Mixup / CutMix 및 NaFlex 로더는 다중 레이블 타깃을 지원합니다. 레이블 스무딩은 각 타깃을 0.5 방향으로 이동시키며, 다중 레이블의 경우 기본값은 0입니다.
- Validation은 mAP(기본
--eval-metric)와 micro, macro, sample F1을 보고하며, F1 임계값은--multilabel-threshold로 설정됩니다. - 새로운 데이터셋 수준의 평가기는 분산 랭크에 걸쳐 전체 검증 세트에 대해 메트릭을 계산하며, 분산 샘플러 패딩은 제외합니다.
- Hub의 timm multi-label image datasets 컬렉션에서 바로 사용할 수 있는 예시/벤치마크 데이터셋을 확인해 보세요.
- 을(를) 통해 새로운 손실 옵션이 추가되었습니다.
--loss- Poly-1, Two-way, ZLPR, Distribution-Balanced 손실 함수.
class_weights.py에서 수집된 레이블 개수로부터 계산된 BCE / ASL의 클래스-빈도 가중치.- ASL은 이제 fp16-safe이며 기본값이
batchmeanreduction입니다
- RoPE 리팩토링
- 학습 전용 RoPE 좌표 증강(shift, jitter, rescale)을 axial, mixed, MRoPE 임베딩으로 확장하고, DINOv3과 헬퍼를 공유하되 기존 증강 동작은 유지합니다.
- Fourier / rotary 빌더(
build_fourier_pos_embed,build_rotary_pos_embed) 및 axial RoPE 모듈에grid_type와normalize_coords옵션을 추가하고, EVA에서 설정 가능한 MRoPE 섹션을 지원합니다. RotaryEmbedding의 튜플 출력 및base팩토리 변형에서rotate_half를 지원합니다.- EVA, NaFlexViT 및 MRoPE attention pooling에서 rotation-layout 전달을 올바르게 수정합니다.
- half/bfloat16 모델에서 학습되지 않은 RoPE 주파수 및 좌표 버퍼는 최소한 float32로 유지하고, autocast 하에서 혼합 RoPE 위상을 float32로 계산하세요. 이러한 정밀도 수정은 저정밀도 모델의 출력을 변경할 수 있습니다.
- 픽셀 그리드 및 참조 형식 리스케일링에 대한 배치된 RoPE 임베딩을 수정했습니다. DINOv3
grid_indexing='xy'는 이제 요청대로 좌표 채널을 교환하며, 이전에 잘못되었던 이러한 구성의 출력 값이 변경됩니다. apply_rot_embed,apply_rot_embed_cat,apply_rot_embed_list가 각 입력의 dtype를 반환하도록 하되, sin/cos를 먼저 다운캐스팅하지 않고 회전 후에 캐스팅을 수행합니다.- 두 개의 축 RoPE 모듈을 비공개 베이스 뒤에 통합했습니다. 기존 호출은 호환성을 유지하지만, 이제 캐시 모드와 동적 모드 모두에서
bands버퍼가 유지됩니다(캐시 모드에서rope.bands가 더 이상None이 아닙니다).
- 캐시된 어텐션 바이어스를 사용하는 LeViT 및 관련 모델(EfficentFormer*, EfficientViT-MSRA, TinyViT)의 학습/평가 모드 전환 및 dtype 변경 문제 수정
2026년 9월 22일
- Qwen-Drive-1.0-4B 비전 타워 가중치를 추가합니다.
- prefetch loader의 스트림 재사용/동기화 및 비정방형 및 단일 밴드 이미지에 대한 AugMix를 수정합니다.
- AdaMuon conv LR scaling, AdafactorBigVision clipping, MARS gradient history, Kron checkpoint loading 문제를 수정합니다.
- stale eval attention bias 캐시, pruned model feature metadata, dilated max-pool padding, asymmetric loss gradient mode를 수정합니다.
- Release 1.0.30
2026년 9월 10일~11일
- Qwen3-VL / Qwen3.5 / Qwen3.8 ViT 분류기 및 인코더 변형을 추가합니다. 이에는 네이티브 공간 머저가 있는 경우와 없는 경우의 분류기가 모두 포함됩니다.
- EVA 및 NaFlexViT 지원을 포함하여 Sapiens2 ViTs를 추가했습니다. 두 모델 모두에 네이티브 timm Hub 가중치가 포함되어 있습니다. Yonghye Kwon님께 감사드립니다.
- timm Hub의 네이티브 가중치를 갖춘 iFormer를 추가했습니다. Ryan Hou님께 감사드립니다.
- timm Hub의 네이티브 가중치를 지원하는 EfficientViM을 추가했습니다. smellslikeml님께 감사드립니다.
- DeepSeek-V4 / V4.1 ViT 분류기 및 인코더를 네이티브 timm Hub 가중치와 함께 추가했습니다. Yonghye Kwon님께 감사드립니다.
- 기본 NaFlex SigLIP 위치 보간,
inference.py입력 크기 선택을 변경하고--model-kwargs파싱을 개선합니다. - 일부 모델의 meta-device 구성 및 device/dtype 팩토리 지원을 수정하고, 더 빠른 CI를 위해 config 테스트를 meta로 이동하며, meta 컨텍스트 커버리지를 추가합니다.
2026년 8월 27일
- LowFormer 모델과 가중치 추가
- 에이전트에서 발견된 실제 존재하지만 크기가 작거나 흔하지 않은 다양한 버그를 수정하거나 병합합니다
- Release 1.0.29
2026년 8월 11일
- 모델 정의 및 사전 학습된 가중치를 추가합니다:
- 병렬화 기능이 낮은 기기를 위한 효율적인 비전 백본인 CPUBone.
- PP-LCNetV2.
- LingBot-Vision.
- NaFlex가 아닌 학습에 대해 배치별 이미지 및 배치 크기 스케줄링을 추가하며, 작은 해상도에서 큰 해상도로 점진적으로 증가하는 스케줄을 포함합니다.
- NaFlexViT를 key-only attention masks, compile-friendly 및 memory-efficient position sampling, cached variable-patch interpolation을 통해 개선합니다.
- 모델 팩토리 경로 및 체크포인트 처리 개선; 동일 토큰 위치 임베딩 리샘플링 수정.
2026년 7월 10일
- 옵티마이저의
torch.compile및 텐서 학습률 지원을 개선합니다. - NaFlex-CLAP을 위한 NaFlexViT patch-layout을 확장하고,
forward_intermediates(NaFlex dict 입력) 지원을 추가합니다. - pickle 로딩을 강화하고 사용자 정의 레이블 추론을 개선합니다.
- Release 1.0.28
2026년 5월 27일
- EUPE ViT(DINOv3 스타일) 및 ConvNeXt 모델의 모델 정의와 사전 학습된 가중치를 추가했습니다. Efficient Universal Perception Encoder 논문을 참조하세요.
- (DINOv2 스타일) ViT에 대한 TIPSv2 모델 정의와 사전 학습된 가중치를 추가했습니다. TIPSv2 논문을 참조하세요.
2026년 5월 8일
- Release 1.0.27
2026년 4월 23일
- NaFlex 파이프라인 지원(이미지별 가변 종횡비/크기)을 갖춘 Gemma4 ViT 인코더 추가. Yonghye Kwon 감사합니다
- NaFlexVit에서 DINOv3 가중치 지원. Yonghye Kwon 감사합니다
- Muon 폴백(AdamW/NadamW)의 lr 동작에 대한 일부 개선 사항
2026년 3월 23일
- pickle 체크포인트 처리의 보안을 개선합니다. 모든 로딩의 기본값을
weights_only=True로 설정하고 ArgParse에 safe_global을 추가합니다. - 핵심 ViT/EVA 모델 및 레이어의 attention mask 처리를 개선합니다. bool mask를 해결하고 SSL 작업을 위해
is_causal를 전달합니다. - ViT에서 pos embed가 비활성화된 경우의 class & register token 사용 문제를 수정했습니다.
- ViT에 Pooling 옵션으로 Patch Representation Refinement(PRR)을 추가했습니다. Sina(https://github.com/sinahmr)님께 감사드립니다.
- Attention pooling 레이어의 출력 투영 / MLP 차원의 일관성을 개선합니다.
- Hiera 모델의 F.SDPA 최적화로 Flash Attention 커널 사용을 허용합니다.
- SGDP 옵티마이저에 주의 사항 추가.
- 1.0.26 릴리스. Hugging Face를 떠난 후 첫 번째 유지보수 릴리스입니다.
2026년 2월 23일
- distillation 작업 래퍼에 토큰 증류 학습 지원을 추가합니다
- 공식 비추천을 준비하기 위해 일부 torch.jit 사용 제거
- AdamP 옵티마이저에 주의사항 추가
- reset_parameters()를 meta-device 초기화인 경우에도 호출하여, init_empty_weights와 같은 해킹을 통해 버퍼가 초기화되도록 합니다
- Muon 옵티마이저를 DTensor/FSDP2와 함께 작동하도록 조정(clamp 대신 clamp_min, DTensor용 NS 브랜치 교대)
- 릴리스 1.0.25
2026년 1월 21일
- Compat Break: 의 QKV와 MLP bias 관련 누락 사항을 수정했습니다.
ParallelScalingBlock(&DiffParallelScalingBlock)- 학습된
timm모델에는 영향을 주지 않지만, 하위 사용에는 영향을 줄 수 있습니다.
- 학습된
2026년 1월 5일 & 6일
- Release 1.0.24
- RTX Pro 6000, 5090, 4090 카드에서 PyTorch 2.9.1을 사용하여 모든 모델의 추론 타이밍에 대한 새로운 벤치마크 결과 csv 파일을 추가합니다
- deprecated timm.models.layers import 경로에서 legacy import에 영향을 미치는 moved module 오류를 수정
- Release 1.0.23
2025년 12월 30일
- 더 나은 NAdaMuon 학습을 추가했습니다
dpwee,dwee,dlittle(이전 실행보다 약간 향상된 (미분) ViT - 약 21M 파라미터의
timmCSATv2 모델 변형을 512x512 및 640x640 해상도로 추가했습니다- https://huggingface.co/timm/csatv2_21m.sw_r640_in1k (top-1 83.13%)
- https://huggingface.co/timm/csatv2_21m.sw_r512_in1k (top-1 82.58%)
__init__에서 비영속적 파라미터 초기화를 분리하여, meta-device 초기화 후init_non_persistent_buffers()를 통해 외부에서 호출할 수 있는 공통 메서드로 추출합니다.
2025년 12월 12일
- CSATV2 모델 추가(https://github.com/gusdlf93 감사합니다) — DCT stem & spatial attention를 갖춘 가볍지만 고해상도 모델. https://huggingface.co/Hyunil/CSATv2
- 기존
timmMuon 구현에 AdaMuon 및 NAdaMuon 옵티마이저 지원을 추가합니다. 이미지 작업에서 익숙한 하이퍼파라미터를 사용할 때 AdamW 대비 더 경쟁력이 있는 것으로 보입니다. - 연말 PR 정리, 여러 개의 장기 미병합 PR의 일부 병합
- 차등 주의(Differential Attention)를 병합하고(
DiffAttention), ViT용)에 해당하는DiffParallelScalingBlock(DiffParallelScalingBlock을 추가하고, 작은 ViT 모델을 몇 개 학습합니다 - 몇 가지 풀링 모듈,
LsePlus와SimPool을 추가합니다 DropBlock2d정리 및 최적화(ByobNet 기반 모델 지원 추가)
- 차등 주의(Differential Attention)를 병합하고(
- 상위 한계에서 단위 테스트를 PyTorch 2.9.1 + Python 3.13으로, 하위 한계에서는 여전히 PyTorch 1.13 + Python 3.10으로 설정
2025년 12월 1일
- 가벼운 작업 추상화를 추가하고, 새로운 작업을 통해 학습 스크립트에 logits 및 feature distillation 지원을 추가합니다.
- 구 APEX AMP 지원 제거
2025년 11월 4일
- 1.0.21에서 도입된 LayerScale / LayerScale2d 초기화 버그(초기화 값 무시)를 수정했습니다. https://github.com/Ilya-Fradlin 감사합니다.
- Release 1.0.22
2025년 10월 31일 🎃
- imagenet 및 OOD 변형 결과 csv 파일에 몇 가지 새로운 모델을 포함하도록 업데이트하고, 여러 torch 및 timm 버전에서 정확성을 검증합니다
- AdamW과 Muon의 hparam 탐색의 일환으로 EfficientNet-X 및 EfficientNet-H B5 모델 가중치가 추가되었습니다 (Muon 실행은 여전히 진행 중)
2025년 10월 16일~20일
- Muon 옵티마이저 구현 추가 (기반: https://github.com/KellerJordan/Muon) 커스터마이징 포함: 추가적인 유연성 향상 및 conv 가중치 처리 개선, 직교화에 적합하지 않은 가중치 형태에 대한 폴백, alloc 감소 및 기본으로 fused (b)add(b)mm 연산 사용으로 NS 반복 속도 소폭 향상, muon이 파라미터 형태에 적합하지 않거나(param group 플래그로 제외된 경우) torch 구현과 동일하게 AdamW(nesterov=True인 경우 NAdamW) 업데이트 사용, adjust_lr_fn을 통해 여러 LR 스케일 조정 함수 중 선택, ns_coefficients를 통해 여러 NS 계수 프리셋 중 선택 또는 직접 지정
- conv 가중치에 대한 추가적인 유연성 향상 및 직교화에 적합하지 않은 가중치 형태에 대한 폴백 처리
- allocs를 줄이고 (b)add(b)mm 연산을 사용하여 NS 반복의 속도를 소폭 향상
- 기본적으로 muon이 매개변수 형식에 적합하지 않거나(param group 플래그를 통해 제외된 경우)
nesterov=True인 경우 NAdamW, 아니면 AdamW 업데이트를 사용합니다 - torch 구현과 유사하게,
adjust_lr_fn를 통해 여러 LR 스케일 조정 함수 중 하나를 선택합니다 - 여러 NS 계수 프리셋 중 하나를 선택하거나
ns_coefficients를 통해 직접 지정
- ‘meta’ 디바이스 모델 초기화의 첫 2단계 지원
- ‘meta’ 디바이스 컨텍스트에서 생성을 방해하던 여러 ops를 수정
timm의 모든 모델 및 모듈(nn.Module을 상속하는 모든 것)에 device 및 dtype 팩토리 kwarg 지원을 추가합니다
- 코드에 사전 학습된 cfg에 추가된 License 필드
- Release 1.0.21
2025년 9월 21일
- DINOv3 ViT 가중치 태그를
lvd_1689m->lvd1689m으로 재매핑하여 일치시킵니다(sat_493m->sat493m도 동일합니다). - Release 1.0.20
2025년 9월 17일
- DINOv3 (https://arxiv.org/abs/2508.10104) ConvNeXt 및 ViT 모델이 추가되었습니다. ConvNeXt 모델은 기존
timm모델에 매핑되었습니다. ViT 지원은 새로운RotaryEmbeddingDinoV3를 통해 DINOv3 전용 RoPE 구현과 일치하도록 EVA 기반 모델로 처리되었습니다. - MobileCLIP-2(https://arxiv.org/abs/2508.20691) 비전 인코더. 새로운 MCI3/MCI4 FastViT 변형이 추가되었으며, 가중치는 기존 FastViT 및 B, L/14 ViT에 매핑되었습니다.
- MetaCLIP-2 Worldwide(https://arxiv.org/abs/2507.22062) ViT 인코더 가중치가 추가되었습니다.
- SigLIP-2 (https://arxiv.org/abs/2502.14786) timm NaFlexViT 모델을 통해 추가된 NaFlex ViT 인코더 가중치.
- 기타 수정 및 기여
2025년 7월 23일
- OpenCLIP 3.0.0에서 timm 기반 인코더 모델의 리사이징을 허용하기 위해 EVA 모델에
set_input_size()메서드를 추가합니다. - OpenCLIP 3.0.0의 PE-Core S & T 모델에 필요한 1.0.18 릴리스
- Python 3.9 호환성을 깨뜨린 작은 타이핑 문제를 수정했습니다. 1.0.19 패치 릴리스.
2025년 7월 21일
- NaFlexViT에 ROPE 지원이 추가되었습니다. EVA 기반(
eva.py)으로 커버되는 모든 모델, 즉 EVA, EVA02, Meta PE ViT,timmSBB ViT w/ ROPE, Naver ROPE-ViT은 이제 모델 생성 시use_naflex=True를 전달하면 NaFlexViT에서 로드할 수 있습니다. - small/tiny 변형, tiling을 지원하는 lang 변형, 추가 spatial 변형을 포함하여 더 많은 Meta PE ViT 인코더가 추가되었습니다.
- NaFlexViT 및 EVA 모델에서 PatchDropout 수정 (Naver ROPE-ViT 추가 후 회귀)
- grid_indexing='xy'를 사용하여 XY 순서를 수정하고, 'xy' 모드에서 영향을 받는 정사각형이 아닌 이미지 사용을 수정했습니다(ROPE-ViT와 PE에만 영향).
2025년 7월 7일
- Google Gemma 3n 동작 개선용 MobileNet-v5 backbone 조정 (업데이트된 공식 가중치와 함께 사용)
- stem bias 추가 (업데이트된 가중치에서 0으로 설정, 기존 가중치와의 호환성 깨짐)
- GELU -> GELU (tanh approx). JAX에 더 가깝게 하기 위한 사소한 변경
- layer-decay 지원에 최소 스케일 클램프와 ‘최적화 없음’ 스케일 임계값이라는 두 개의 인수를 추가합니다
- ‘Fp32’ LayerNorm, RMSNorm, SimpleNorm 변형을 추가하여 float32로 norm 계산을 강제하도록 활성화할 수 있습니다
- 위에서 수행한 norm, norm+act 레이어에 대한 일부 타이핑 및 인자 정리
eva.py에서 Naver ROPE-ViT(https://github.com/naver-ai/rope-vit)을 지원하고, 혼합 모드를 위한 RotaryEmbeddingMixed 모듈을 추가하며, 가중치는 HuggingFace Hub에 있습니다
| 모델 | 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 |
- ROPE 모듈, 헬퍼, FX 트레이싱 리프 등록에 대한 일부 정리
- 1.0.17 릴리스 준비
2025년 6월 26일
- Gemma 3n 이미지 인코더용 MobileNetV5 백본(인코더 전용 변형 포함)
- Version 1.0.16 릴리스
2025년 6월 23일
NaFlexViT에 F.grid_sample 기반의 2D 및 factorized pos embed resize를 추가했습니다. 다양한 크기가 많을 때 더 빠릅니다(https://github.com/stas-sl의 예시를 기반으로 함).
https://github.com/stas-sl의 스니펫을 기반으로 vmap을 matmul로 대체하여 patch embed resample을 추가로 가속화합니다.
테스트 중에 생성한 3개의 초기 네이티브 aspect NaFlexViT 체크포인트를 추가합니다. ImageNet-1k와 동일한 하이퍼파라미터를 가진 3가지 다른 pos embed 구성입니다.
모델 Top-1 정확도 Top-5 정확도 매개변수 (M) 평가 시퀀스 길이 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 forward_intermediates에 대한 gradient checkpointing을 지원하고 일부 checkpointing 버그를 수정했습니다. https://github.com/brianhou0208 감사합니다.AdamW (legacy), Adopt, Kron, Adafactor (BV), Lamb, LaProp, Lion, NadamW, RmsPropTF, SGDW 옵티마이저에 ‘corrected weight decay’(https://arxiv.org/abs/2506.02285) 옵션 추가
PE(Perception Encoder) ViT 모델이 on-the-fly 리매핑 대신 네이티브 timm 가중치를 사용하도록 전환
cuda 스트림 버그를 프리페치 로더에서 수정
2025년 6월 5일
- 초기 NaFlexVit 모델 코드. NaFlexVit은 다음과 같은 기능을 갖춘 Vision Transformer입니다:
- 단일 모듈에 캡슐화된 임베딩 및 위치 인코딩
- 사전 패치화(사전) 입력에 대한 nn.Linear 패치 임베딩 지원
- NaFlex 가변 종횡비, 가변 해상도 지원 (SigLip-2: https://arxiv.org/abs/2502.14786)
- FlexiViT 가변 패치 크기 지원 (https://arxiv.org/abs/2212.08013)
- NaViT 분수/인수화 위치 임베딩 지원 (https://arxiv.org/abs/2307.06304)
- 기존의 vit 모델은
vision_transformer.py에use_naflex=True플래그를 추가하여 NaFlexVit 모델로 로드할 수 있습니다. 네이티브 가중치가 곧 제공됩니다create_model- 곧 네이티브 가중치가 제공됩니다
- 가변적인 종횡비/크기의 이미지로 학습/파인튜닝/평가할 수 있는 완전한 NaFlex 데이터 파이프라인이 제공됩니다.
train.py와validate.py에서 활성화하려면--naflex-loader인수를 추가해야 하며, NaFlexVit과 함께 사용해야 합니다
- NaFlexVit 모델에 NaFlex 데이터 파이프와 함께 로드된 기존(클래식) ViT를 평가하려면:
python validate.py /imagenet --amp -j 8 --model vit_base_patch16_224 --model-kwargs use_naflex=True --naflex-loader --naflex-max-seq-len 256
- 학습에는 주목할 만한 추가 인자 기능이 몇 가지 있습니다.
--naflex-train-seq-lens'인수는 학습 중 배치별로 무작위로 선택할 시퀀스 길이를 지정합니다--naflex-max-seq-len인수는 검증용 대상 시퀀스 길이를 설정합니다--model-kwargs enable_patch_interpolator=True --naflex-patch-sizes 12 16 24를 추가하면 배치별 무작위 패치 크기 선택 및 보간이 활성화됩니다.--naflex-loss-scale인자는 배치 크기에 따라 배치별 손실 스케일링 모드를 변경하며,timmNaFlex 로딩은 각 시퀀스 길이에 대해 배치 크기를 변경합니다
2025년 5월 28일
- 다음 덕분에 소형/고속 모델 여러 개를 추가했습니다. https://github.com/brianhou0208
- SwiftFormer - (ICCV2023) SwiftFormer: Efficient Additive Attention for Transformer-based Real-time Mobile Vision Applications
- FasterNet - (CVPR2023) Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
- SHViT - (CVPR2024) SHViT: 메모리 효율적인 단일 헤드 비전 트랜스포머
- StarNet - (CVPR2024) Rewrite the Stars
- GhostNet-V3 GhostNetV3: 컴팩트 모델을 위한 학습 전략 탐색
- EVA ViT(가장 유사한 모델)를 업데이트하여 Perception Encoder 모델(https://arxiv.org/abs/2504.13181) Meta의 모델을 지원하도록 하되, Hub의 가중치를 로드합니다. 다만 전용
timm가중치를 업로드해야 합니다- ROPE 구현에 유연성을 추가
- 지원하는 모델 수가 크게 증가했습니다
forward_intermediates()그리고 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
- 새 가중치로 TNT 모델 업데이트, https://github.com/brianhou0208 덕분에
forward_intermediates() local-dir:사전 학습 스키마를 추가했습니다. 모델 이름으로local-dir:/path/to/model/folder를 사용하여 로컬 폴더에서 Hugging Face Hub 모델(config.json + 가중치 파일)의 모델/사전 학습 cfg & 가중치를 소스로 사용할 수 있습니다.- onnx 내보내기 관련 수정 및 개선 사항
2025년 2월 21일
- SigLIP 2 ViT 이미지 인코더가 추가되었습니다 (https://huggingface.co/collections/timm/siglip-2-67b8e72ba08b09dd97aecaf9)
- 가변 해상도 / 가로 세로 비율 NaFlex 버전은 작업 중(WIP)입니다
- SBB 레시피로 학습한 ‘SO150M2’ ViT 가중치를 추가했습니다. 이전 시도보다 학습량이 적음에도 ImageNet에서 더 나은 결과를 보여줍니다.
vit_so150m2_patch16_reg1_gap_448.sbb_e200_in12k_ft_in1k- top-1 88.1%vit_so150m2_patch16_reg1_gap_384.sbb_e200_in12k_ft_in1k- top-1 87.9%vit_so150m2_patch16_reg1_gap_256.sbb_e200_in12k_ft_in1k- 87.3% top-1vit_so150m2_patch16_reg4_gap_256.sbb_e200_in12k
- InternViT-300M ‘2.5’ 가중치 업데이트
- Release 1.0.15
2025년 2월 1일
- 참고로 PyTorch 2.6 & Python 3.13은 현재 main 및 릴리스된 버전의
timm와 함께 테스트되어 정상 작동합니다.
2025년 1월 27일
- Kron Optimizer(PSGD w/ Kronecker-factored preconditioner) 추가
2025년 1월 19일
- LeViT safetensor 가중치 로딩 문제 수정, 비활성화되었어야 할 변환 코드 제거
- SBB 레시피로 학습한 ‘SO150M’ ViT 가중치를 추가했습니다. 상당한 결과를 보여주지만, ImageNet-12k/1k 사전학습/파인튜닝에는 최적의 형태가 아닙니다.
vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k_ft_in1k- top-1 86.7%vit_so150m_patch16_reg4_gap_384.sbb_e250_in12k_ft_in1k- 87.4% top-1vit_so150m_patch16_reg4_gap_256.sbb_e250_in12k
- 기타 타이핑, 오타 등 정리
- LeViT 수정 사항을 반영하기 위해 1.0.14 릴리스
2025년 1월 9일
- 순수한
bfloat16또는float16로 학습 및 검증하는 기능을 지원합니다 wandb프로젝트 이름 인수를 https://github.com/caojiaolong이 추가했으며, 이름으로 arg.experiment를 사용합니다- 하드링크를 지원하지 않는 파일 시스템(예: FUSE fs 마운트)에서 체크포인트 저장 기능이 작동하지 않던 기존 문제를 수정
- 1.0.13 릴리스
2025년 1월 6일
TIMM_REENTRANT_CKPT=1이 환경에 설정되지 않은 한,timm.models에use_reentrant=False를 기본값으로 하는torch.utils.checkpoint.checkpoint()래퍼를 추가합니다.
2024년 12월 31일
convnext_nano384x384 ImageNet-12k 사전 학습 및 미세 조정. https://huggingface.co/models?search=convnext_nano%20r384- https://github.com/apple/ml-aim에서 AIM-v2 인코더를 추가했으며, Hub에서 확인: https://huggingface.co/models?search=timm%20aimv2
- 기존 PaliGemma에 https://github.com/google-research/big_vision의 PaliGemma2 인코더를 추가했습니다. Hub에서 확인: https://huggingface.co/models?search=timm%20pali2
- 누락된 L/14 DFN2B 39B CLIP ViT,
vit_large_patch14_clip_224.dfn2b_s39b추가 - 기존
RmsNorm레이어 및 함수를 표준 수식과 일치하도록 수정하고, 가능한 경우 PT 2.5 구현을 사용합니다. 기존 구현은SimpleNorm레이어로 이동했으며, 이는 중심화나 bias가 없는 LN입니다. 이를 사용하던timm모델은 두 개뿐이었으며, 모두 업데이트되었습니다. - 모델 생성 시
cache_dir인수를 재정의할 수 있도록 허용 - HF datasets 래퍼에
trust_remote_code를 그대로 전달합니다 inception_next_atto모델이 생성자에 의해 추가됨- Adan 옵티마이저 주의사항 및 Lamb decoupled weight decay 옵션
- https://github.com/brianhou0208에 의해 수정된 일부 feature_info 메타데이터
- load time remapping을 사용했던 모든 OpenCLIP 및 JAX(CLIP, SigLIP, Pali 등) 모델 가중치는
hf-hub:기반 로딩과 호환되도록 자체 HF Hub 인스턴스가 부여되었으며, 따라서 새로운 TransformersTimmWrapperModel과 함께 작동합니다.
2024년 11월 28일
- 추가 옵티마이저
- MARS 옵티마이저 추가 (https://arxiv.org/abs/2411.10438, https://github.com/AGI-Arena/MARS)
- LaProp 옵티마이저 추가(https://arxiv.org/abs/2002.04839, https://github.com/Z-T-WANG/LaProp-Optimizer)
- Adafactor, Adafactor Big Vision, AdamW (legacy), Adopt, Lamb, LaProp, Lion, NadamW, RMSPropTF, SGDW에 ‘Cautious Optimizers’(https://arxiv.org/abs/2411.16085, https://github.com/kyleliang919/C-Optim)의 masking을 추가했습니다
- optimizers 및 factory 관련 docstring과 type annotations 정리
- in12k에서 사전 학습하고 384x384에서 in1k로 미세 조정된 MobileNet-V4 Conv Medium 모델을 추가합니다
- 작은 cs3darknet을 추가했습니다. 속도가 상당히 좋습니다
2024년 11월 12일
- 옵티마이저 팩토리 리팩토링
- 새로운 팩토리는 OptimInfo 데이터클래스를 사용하여 옵티마이저를 등록하는 방식으로 작동하며, 이 데이터클래스에는 몇 가지 주요 특성이 포함되어 있습니다
create_optimizer_v2함수에list_optimizers,get_optimizer_class,get_optimizer_info를 추가하여 옵티마이저를 탐색하거나 정보 또는 클래스를 가져오도록 합니다optim.optim_factory를 비추천으로 표시하고, 함수를optim/_optim_factory.py및optim/_param_groups.py로 이동하며,timm.optim를 통한 가져오기를 권장합니다
- Adopt(https://github.com/iShohei220/adopt) 옵티마이저 추가
- Adafactor 옵티마이저의 ‘Big Vision’ 변형 추가 (https://github.com/google-research/big_vision/blob/main/big_vision/optax.py)
- Fix original Adafactor to pick better factorization dims for convolutions
- torch.where 기능에서 원본 대비 일부 개선 사항을 반영하여 LAMB 옵티마이저를 조정하고, 클리핑을 약간 리팩토링합니다
- vit, deit, eva에서 동적 이미지 크기 지원이 개선되어 정사각형이 아닌 패치 그리드에서 리사이즈를 지원하도록 개선되었습니다. https://github.com/wojtke 감사합니다
2024년 10월 31일
새로 학습된 ResNet & ResNet-V2 18/34 (basic block) 가중치 세트를 추가했습니다. https://huggingface.co/blog/rwightman/resnet-trick-or-treat를 참조하세요.
2024년 10월 19일
- cuda 전용 호출을 피하기 위해 torch amp 사용법을 정리하고, MengqingCao의 Ascend(NPU) 장치 지원 병합을 통해 이제 PyTorch 2.5의 새로운 장치 확장 자동 로드 기능으로 작동해야 합니다. PyTorch 2.5에서 Intel Arc(XPU)도 테스트했으며 (대부분) 작동했습니다.
2024년 10월 16일
timm.models.registry에서 가져오는 경우 발생하는 오류를 수정하고, 기존 비권장(deprecation) 경고의 우선순위를 높여 표시되도록 했습니다- InternViT-300M(https://huggingface.co/OpenGVLab/InternViT-300M-448px)의 가중치를
timm에vit_intern300m_patch14_448으로 가져오기
2024년 10월 14일
- 요청에 따라 추가된 18/18d/34/34d ResNet 모델 정의의 Pre-activation(ResNetV2) 버전(가중치 대기 중)
- Release 1.0.10
2024년 10월 11일
- MambaOut (https://github.com/yuweihao/MambaOut) 모델 및 가중치가 추가되었습니다. SSM이 없는 SSM 비전 모델에 대한 재치 있는 시도(기본적으로 게이팅이 적용된 ConvNeXt)입니다. 원래 가중치와 사용자 정의 변형 및 가중치의 혼합입니다.
- SigLIP SO400M ViT를 378x378 해상도로 ImageNet-1k에서 fine-tune하고, 기존 SigLIP 384x384 모델에 378x378 옵션을 추가했습니다
- vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 top-1
- vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
- 최근 다국어(i18n) 변형의 SigLIP SO400M ViT 인코더, patch16 @ 256x256 (https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256). OpenCLIP 업데이트 대기 중입니다.
- ConvNeXt ‘Zepto’ 모델 및 가중치 2종 추가(중복 stem 사용 모델 1종, patch stem 사용 모델 1종). RMSNorm을 사용하며, 이전 ‘Atto’보다 작고 2.2M 파라미터를 가집니다.
- convnext_zepto_rms_ols.ra4_e3600_r224_in1k - 224에서 top-1 73.20
- convnext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
2024년 9월
- 단위 테스트 개선 및 니치 저자원 애플리케이션을 위한 소형 테스트 모델 모음을 추가합니다 (https://huggingface.co/blog/rwightman/timm-tiny-test)
- MobileNetV4-Conv-Small (0.5x) 모델 추가 (https://huggingface.co/posts/rwightman/793053396198664)
- mobilenetv4_conv_small_050.e3000_r224_in1k - 65.81 top-1 @ 256, 64.76 @ 224
- MNV4 Small 레시피로 학습된 MobileNetV3-Large 변형 추가
- mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81.81 @ 320, 80.94 @ 256
- mobilenetv3_large_100.ra4_e3600_r224_in1k - 77.16 @ 256, 76.31 @ 224
2024년 8월 21일
- ImageNet-12k에서 학습하고 ImageNet-1k에서 미세 조정된 업데이트된 SBB ViT 모델은 훨씬 크고 느린 여러 모델을 위협합니다
| 모델 | 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 |
- MobileNet-V1 1.25, EfficientNet-B1, & ResNet50-D 가중치, MNV4 베이스라인 챌린지 레시피
| 모델 | 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 |
- SAM2 (HieraDet) 백본 아키텍처 및 가중치 로딩 지원 추가
- in12k에서 abswin pos embed로 학습하고 1k에서 fine-tune한 Hiera Small 가중치를 추가합니다
| 모델 | 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 |
2024년 8월 8일
- RDNet(‘DenseNets Reloaded’, https://arxiv.org/abs/2403.19588) 추가, Donghyun Kim 감사합니다
2024년 7월 28일
mobilenet_edgetpu_v2_m가중치에ra4mnv4-small 기반 레시피를 추가했습니다. 224에서 top-1 80.1%, 256에서 80.7%입니다.- 릴리스 1.0.8
2024년 7월 26일
- MobileNet-v4 가중치 추가, ImageNet-12k 사전 학습 및 미세 조정, 그리고 안티 앨리어싱이 적용된 ConvLarge 모델
| 모델 | 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 |
- 인상적인 MobileNet-V1 및 EfficientNet-B0 베이스라인 챌린지(https://huggingface.co/blog/rwightman/mobilenet-baselines)
| 모델 | 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 |
- 모델 생성 후 이미지 크기, 패치 크기, 윈도우 크기를 변경할 수 있도록
set_input_size()프로토타입을 vit 및 swin v1/v2 모델에 추가했습니다. - swin에서 다양한 크기의 처리에 대한 지원이 개선되었습니다.
set_input_size외에도always_partition및strict_img_size인수가__init__에 추가되어 보다 유연한 입력 크기 제약 조건을 사용할 수 있습니다. - 중간 ‘Getter’ feature wrapper의 순서 없는 인덱스 정보를 수정하고, 동일한 wrapper의 out of range 인덱스를 확인합니다.
- ImageNet-1k에서 실제로 학습된
tiny< .5M 파라미터 모델 여러 개를 테스트용으로 추가
| 모델 | 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 |
- vit reg token 초기화를 수정했습니다. Promisery 감사합니다
- 기타 잡다한 수정 사항
2024년 6월 24일
- 다른 MQA 가중치 초기화 스킴을 사용한 3개의 추가 MobileNetV4 하이브리드 가중치
| 모델 | 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 |
- DaViT 모델에서 florence2 가중치 로드
2024년 6월 12일
- MobileNetV4 모델과 초기
timm학습 가중치 세트가 추가되었습니다:
- Apple MobileCLIP(https://arxiv.org/pdf/2311.17049, FastViT 및 ViT-B) 이미지 타워 모델 지원 및 가중치 추가(OpenCLIP 지원의 일부).
- ViTamin(https://arxiv.org/abs/2404.02132) CLIP 이미지 타워 모델 및 가중치가 추가되었습니다(OpenCLIP 지원의 일부).
- OpenAI CLIP 수정 ResNet 이미지 타워 모델링 및 가중치 지원(ByobNet을 통해). AttentionPool2d 리팩터링.
2024년 5월 14일
- 평균 풀링을 사용하여 PaliGemma jax 가중치를 SigLIP ViT 모델에 로드하는 것을 지원합니다.
- Meta의 Hiera 모델을 추가합니다(https://github.com/facebookresearch/hiera).
normalize=플래그를 transforms에 추가하고, 원래 dtype을 가진 정규화되지 않은 torch.Tensor를 반환합니다(chug용)- Version 1.0.3 릴리스
2024년 5월 11일
Searching for Better ViT Baselines (For the GPU Poor)의 가중치와 ViT 변형이 공개되었습니다. Tiny와 Base 사이의 모델 형태를 탐색합니다.
| 모델 | 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 |
timm모델에서 어텐션 맵을 추출하기 위한 AttentionExtract 헬퍼가 추가되었습니다. https://github.com/huggingface/pytorch-image-models/discussions/1232#discussioncomment-9320949의 예시를 참고하세요.forward_intermediates()API가 개선되어 ConvNet 중 다른 추출 방법을 사용하는 모델 등 더 많은 모델에 추가되었습니다.- 1047개 모델 아키텍처 중 1017개가
features_only=True특징 추출을 지원합니다. 나머지 34개 아키텍처는 우선순위 요청에 따라 지원될 수 있습니다. - torch.jit.script으로 주석된 함수 및 구형 JIT 활성화 함수를 제거합니다. dynamo와 충돌하며, dynamo를 사용할 때 훨씬 더 나은 성능을 제공합니다.
2024년 4월 11일
- 오래전부터 예정되어 있던 1.0 릴리스를 준비하는 중이며, 그동안 시스템이 안정적으로 유지되어 왔습니다.
- 오래도록 빠져 있던 주요 기능으로, 평탄한(hidden states) 또는 비표준(non-std) 모듈 레이아웃을 가진 ViT 모델에 대한
features_only=True지원입니다(현재까지'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'를 지원합니다). - 위 기능 지원은 기능 래핑 모듈 또는 직접 사용할 수 있는 새로운
forward_intermediates()API를 통해 구현되었습니다.
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])- TinyCLIP 비전 타워 가중치 추가, Thien Tran 감사합니다
2024년 2월 19일
- Next-ViT 모델이 추가되었습니다. https://github.com/bytedance/Next-ViT에서 가져왔습니다.
- HGNet 및 PP-HGNetV2 모델이 추가되었습니다. SeeFun이(가) https://github.com/PaddlePaddle/PaddleClas에서 가져와서 적용했습니다.
- setup.py를 제거하고 PDM이 지원하는 pyproject.toml 기반 빌드로 전환했습니다
- _for_each를 사용하여 오버헤드를 줄인 업데이트된 모델 EMA 구현 추가
- GPU가 아닌 장치를 위한 학습 스크립트에서 장치 인자를 지원
- 기타 잡다한 수정 및 작은 추가 사항
- 최소 지원 Python 버전이 3.8로 상향 조정되었습니다
- Release 0.9.16
2024년 1월 8일
Datasets & transform 리팩토링
- HuggingFace 스트리밍(반복 가능) 데이터셋 지원(
--dataset hfids:org/dataset) - Webdataset 래퍼를 조정하여 분할 정보 가져오기를 개선하고, 지원되는 HF 허브 Webdataset에서 분할을 자동으로 가져올 수 있도록 했습니다.
- HF
datasets와 webdataset 래퍼의 HF 허브 스트리밍을 최근timm의 https://huggingface.co/timm 업로드된 ImageNet 데이터로 테스트했습니다 - 데이터셋 간 입력 및 대상 열/필드 키를 일관되게 유지하고 args를 통해 전달
- e:g:
--input-size 1 224 224또는--in-chans 1을 사용할 때 완전한 단색(monochrome) 지원, 데이터셋에서 PIL 이미지 변환을 적절하게 설정 - PixParse 문서 AI 프로젝트에서 사용할 수 있도록 ResizeKeepRatio, RandomCropOrPad 등 여러 대안 크롭 및 리사이즈 변환을 개선
- augmentations 및 args에 grayscale와 gaussian blur 옵션과 함께 SimCLR 스타일의 color jitter prob을 추가합니다
- train 스크립트에서 검증 세트 없이 학습을 허용합니다(
--val-split '') --bce-sum(클래스 차원 합) 및--bce-pos-weight(양성 가중치) 인수를 학습에 추가했습니다. 이는 제가 자주 하드코딩하던 일반적인 BCE 손실 조정 항목이기 때문입니다.
2023년 11월 23일
- EfficientViT-Large 모델을 추가했습니다. SeeFun 감사합니다
- Python 3.7 호환성을 수정했으며, 곧 해당 버전에 대한 지원을 중단할 예정입니다
- 기타 잡다한 수정 사항
- Release 0.9.12
2023년 11월 20일
- Hugging Face Hub 기반 timm 모델에 대한 상당한 유연성을
model_argsconfig 항목을 통해 추가했습니다.model_args생성 시 모델에 kwargs로 전달됩니다. - 최신 모델로 imagenet 평가 및 테스트 세트 csv 파일을 업데이트했습니다
vision_transformer.py의 타입 및 문서 정리 by Laureηt- 0.9.11 릴리스
2023년 11월 3일
- DFN(Data Filtering Networks) 및 MetaCLIP ViT 가중치 추가
- DINOv2 ‘register’ ViT 모델 가중치 추가됨 (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
quickgelu를 사용하는 OpenAI, DFN, MetaCLIP 가중치에 대해quickgeluViT 변형을 추가합니다(효율성이 낮음)- Aryan님의 기여로 ResNet, MobileNet-v3에 개선된 타이핑이 추가되었습니다
- ImageNet-12k fine-tuned (LAION-2B CLIP 기반)
convnext_xxlarge - 0.9.9 릴리스
2023년 10월 20일
- SigLIP 이미지 타워 가중치가 지원되는
vision_transformer.py.- 파인튜닝 및 다운스트림 기능 활용에 큰 잠재력을 가집니다.
- Experimental ‘register’ support in vit models as per Vision Transformers Need Registers
- 새로운 가중치 릴리스로 RepViT를 업데이트했습니다. wangao님께 감사드립니다.
- Swin 모델에 패치 리사이징 지원(프리트레이닝된 가중치 로드 시) 추가
- 0.9.8 릴리스 대기 중
2023년 9월 1일
- SeeFun이 추가한 TinyViT
- EfficientViT (MIT)을 torch.autocast를 사용하도록 수정하여 PT 1.10까지 호환되도록 합니다
- 0.9.7 릴리스
2023년 8월 28일
- 다음 모델에 동적 이미지 크기 지원을 추가합니다:
vision_transformer.py,vision_transformer_hybrid.py,deit.py, 및eva.py하위 호환성을 깨뜨리지 않는 방식으로. 모델 생성 시 인자에 dynamic_img_size=True를 추가하여 그리드 크기 변경을 허용합니다(각 forward pass마다 절대 위치 임베딩 및/또는 ROPE 위치 임베딩을 보간). dynamic_img_pad=True를 추가하여 패치 크기로 나누어 떨어지지 않는 이미지 크기를 허용합니다(각 forward pass마다 오른쪽 아래를 패치 크기로 패딩). 동적 모드 중 하나를 활성화하면 PatchEmbed 모듈을 leaf로 추가하지 않는 한 FX tracing이 깨집니다. 생성 시 다른 img_size를 전달하여 위치 임베딩을 리사이즈하는 기존 방법(프리트레이닝된 임베딩 가중치를 한 번만 보간)은 여전히 작동합니다. 생성 시 patch_size를 변경하는 기존 방법(프리트레이닝된 patch_embed 가중치를 한 번만 리사이즈)도 여전히 작동합니다. 검증 명령 예시: 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- 모델 생성 시 args에
dynamic_img_size=True를 추가하여 그리드 크기를 변경할 수 있도록 합니다(각 forward pass마다 abs 및/또는 ROPE pos embed를 보간). dynamic_img_pad=True를 추가하여 패치 크기로 나누어 떨어지지 않는 이미지 크기를 허용합니다(각 forward pass마다 오른쪽 아래를 패치 크기로 패딩).- dynamic 모드 중 하나를 활성화하면 PatchEmbed 모듈을 leaf로 추가하지 않는 한 FX tracing이 깨집니다.
- 생성 시 다른
img_size를 전달하여 위치 임베딩을 리사이즈하는 기존 방법(프리트레이닝된 임베딩 가중치를 한 번 보간)은 여전히 작동합니다. - 생성 시
patch_size를 변경하는 기존 방법(사전 학습된 patch_embed 가중치를 한 번 리사이즈)은 여전히 작동합니다. - 검증 명령 예시
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
- 모델 생성 시 args에
2023년 8월 25일
- 지난 릴리스 이후 많은 새로운 모델이 추가되었습니다
- 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 (https://github.com/ChengpengChen 감사합니다)
- GhostNetV2 - https://arxiv.org/abs/2211.12905 (https://github.com/yehuitang 감사합니다)
- EfficientViT (MSRA) - https://arxiv.org/abs/2305.07027 (https://github.com/seefun 감사합니다)
- EfficientViT (MIT) - https://arxiv.org/abs/2205.14756 (https://github.com/seefun 감사합니다)
- 추가
--reparam인수를benchmark.py,onnx_export.py, 및validate.py에 추가하여, 다음 중 하나를 가진 모델의 레이어 재매개변수화/퓨전을 트리거합니다.reparameterize(),switch_to_deploy()또는fuse()- FastViT, MobileOne, RepGhostNet, EfficientViT (MSRA), RepViT, RepVGG, LeViT 포함
- 0.9.6 ‘back to school’ 릴리스 준비
2023년 8월 11일
- Swin, MaxViT, CoAtNet, BEiT 모델은 생성 시 이미지/윈도우 크기를 조정하고 사전 학습된 가중치를 적응시킬 수 있습니다
- 비정사각형 리사이즈로 테스트하기 위한 예시 검증 명령:
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
2023년 8월 3일
- HRNet w18_small 및 w18_small_v2에 대한 GluonCV 가중치를 추가했습니다. SeeFun이(가) 변환했습니다.
selecsls*모델 명명 회귀 문제 수정- ViT/EVA의 Patch 및 position embedding은 로드 시 bfloat16/float16 가중치(또는 on-the-fly resize의 경우 activations)에서 작동합니다
- v0.9.5 릴리스 준비
2023년 7월 27일
- timm에서 학습한
seresnextaa201d_32x8d.sw_in12k_ft_in1k_384가중치(그리고.sw_in12k사전 학습)를 추가했습니다. ImageNet-1k에서 top-1 정확도 87.3%를 기록했으며, 제가 아는 범위 내에서 ImageNet ResNet 계열 모델 중 가장 우수한 성능을 보입니다. - RepViT 모델 및 가중치(https://arxiv.org/abs/2307.09283)를 wangao님이 추가했습니다
- SeeFun이 추가한 I-JEPA ViT 특징 가중치(분류기 없음)
- SAM-ViT(세그먼트 애니싱) 기능 가중치(클래시퍼 없음)를 SeeFun이 추가
- EfficientNet에 대안적인 feat 추출 방법 및 -ve 인덱스 지원 추가
- NAdamW 옵티마이저 추가
- 기타 수정 사항
2023년 5월 11일
timm0.9 릴리스, 0.8.xdev 릴리스에서 전환
2023년 5월 10일
- Hugging Face Hub 다운로드가 이제 기본이며, https://huggingface.co/timm에 1132개의 모델,
timm에 1163개의 가중치가 있습니다 - Leng Yue님의 기여로 DINOv2 vit feature backbone weights가 추가되었습니다
- FB MAE vit feature backbone weights 추가
- OpenCLIP DataComp-XL L/14 feat 백본 가중치 추가
- Fredo Guan이 가중치를 추가한 MetaFormer (poolformer-v2, caformer, convformer, 업데이트된 poolformer (v1))
- vit/deit 모델에서 숨겨진 상태를 가져오기 위한 실험적
get_intermediate_layers함수(DINO 구현에서 영감을 받음). 이는 작업 중이며 크게 변경될 수 있습니다… 피드백을 환영합니다. pretrained=True이고 가중치가 존재하지 않으면 모델 생성 시 무작위 초기화로 계속 진행하는 대신 오류가 발생합니다- inception / nasnet TF 소스 가중치와 원래 분류기의 1001 클래스에 대한 회귀 문제를 수정
- bitsandbytes (https://github.com/TimDettmers/bitsandbytes) 옵티마이저가 팩토리에 추가되었으며,
bnb접두사를 사용합니다. 예를 들어bnbadam8bit등이 있습니다. - 기타 정리 및 수정
- 0.9로 전환하고
timm의 사전 릴리스 상태를 종료하기 전 최종 테스트
2023년 4월 27일
- HF Hub에 업로드된
timm모델의 97%와 거의 모든 모델이 다중 가중치 사전학습 구성을 지원하도록 업데이트되었습니다 - multi-weight가 추가된 또 다른 모델 배치에 대한 소규모 정리 및 리팩터링. 더 많은 fused_attn(F.sdpa) 및 features_only 지원, 그리고 torchscript 수정 사항.
2023년 4월 21일
- train 스크립트에 Gradient accumulation 지원 추가 및 테스트 완료(
--grad-accum-steps), Taeksang Kim 감사합니다 - HF Hub의 추가 가중치(cspnet, cait, volo, xcit, tresnet, hardcorenas, densenet, dpn, vovnet, xception_aligned)
- train.py에
--head-init-scale와--head-init-bias를 추가하여 분류 헤드를 스케일링하고 fine-tune을 위한 고정 bias를 설정 - InplaceABN(
inplace_abn) 사용을 모두 제거하고, tresnet에서 표준 BatchNorm으로 대체했습니다(권중을 이에 맞게 수정).
2023년 4월 12일
- ONNX 내보내기 스크립트, 검증 스크립트, 그리고 오랫동안 가지고 있던 헬퍼를 추가합니다. 최근 ONNX + PyTorch 환경에서 더 나은 내보내기를 위해 'same' 패딩을 조정합니다.
- vit 및 vit 유사 모델의 dropout 인수를 리팩토링하고, drop_rate를
drop_rate(클래시파이어 dropout),proj_drop_rate(블록 mlp / out projections),pos_drop_rate(위치 임베딩 drop),attn_drop_rate(attention dropout)로 분리합니다. 또한 vit 및 eva 모델에 patch dropout(FLIP)을 추가합니다. - fused F.scaled_dot_product_attention을 더 많은 vit 모델에 지원하고, 이를 제어하기 위한 환경 변수(TIMM_FUSED_ATTN) 및 활성화/비활성화를 위한 config 인터페이스를 추가합니다
- 이미지 타워 가중치를 포함한 EVA-CLIP 백본을 추가합니다. 4B 파라미터의 ‘enormous’ 모델까지 지원하며, 누락되었던 336x336 OpenAI ViT 모드도 포함합니다.
2023년 4월 5일
- 멀티 웨이트(multi-weight) 지원을 갖춘 모든 ResNet 모델이 Hugging Face Hub에 업로드되었습니다
- 이전
timm학습된 가중치 모두에 레시피 기반 태그를 추가하여 구별 - 모든 ResNet이 반격합니다 A1/A2/A3 (seed 0) 및 R50 예제 B/C1/C2/D 가중치 사용 가능
- 기존 torchvision 원본에 torchvision v2 레시피 가중치를 추가
- https://huggingface.co/timm/seresnextaa101d_32x8d.sw_in12k_ft_in1k_288#model-comparison의 비교 표를 참조하세요.
- 이전
- 일부 안티앨리어싱 ResNet 모델에 대해 새로운 ImageNet-12k + ImageNet-1k fine-tune이 제공됩니다
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
2023년 3월 31일
- convnext-base/large CLIP 모델에 대해 첫 번째 ConvNext-XXLarge CLIP -> IN-1k fine-tune 및 IN-12k intermediate fine-tunes를 추가합니다.
| 모델 | top1 | top5 | img_size | param_count | gmacs | macts |
|---|---|---|---|---|---|---|
| convnext_xxlarge.clip_laion2b_soup_ft_in1k | 88.612 | 98.704 | 256 | 846.47 | 198.09 | 124.45 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_384 | 88.312 | 98.578 | 384 | 200.13 | 101.11 | 126.74 |
| convnext_large_mlp.clip_laion2b_soup_ft_in12k_in1k_320 | 87.968 | 98.47 | 320 | 200.13 | 70.21 | 88.02 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k_384 | 87.138 | 98.212 | 384 | 88.59 | 45.21 | 84.49 |
| convnext_base.clip_laion2b_augreg_ft_in12k_in1k | 86.344 | 97.97 | 256 | 88.59 | 20.09 | 37.55 |
- EVA-02 MIM 사전 학습 및 미세 조정 가중치를 추가하고, HF 허브에 업로드하며, 모든 EVA 모델의 모델 카드를 업데이트했습니다. 90% 이상의 top-1 정확도를 달성한 첫 번째 모델입니다(99% top-5)! MIM과 CLIP을 다양한 모델, 데이터셋, 학습 레시피 조정과 결합한 그들의 작업에 대한 자세한 내용은 https://github.com/baaivision/EVA에서 원본 코드 및 가중치를 확인해 보세요.
| 모델 | top1 | top5 | param_count | img_size |
|---|---|---|---|---|
| eva02_large_patch14_448.mim_m38m_ft_in22k_in1k | 90.054 | 99.042 | 305.08 | 448 |
| eva02_large_patch14_448.mim_in22k_ft_in22k_in1k | 89.946 | 99.01 | 305.08 | 448 |
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.792 | 98.992 | 1014.45 | 560 |
| eva02_large_patch14_448.mim_in22k_ft_in1k | 89.626 | 98.954 | 305.08 | 448 |
| eva02_large_patch14_448.mim_m38m_ft_in1k | 89.57 | 98.918 | 305.08 | 448 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.56 | 98.956 | 1013.01 | 336 |
| eva_giant_patch14_336.clip_ft_in1k | 89.466 | 98.82 | 1013.01 | 336 |
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.214 | 98.854 | 304.53 | 336 |
| eva_giant_patch14_224.clip_ft_in1k | 88.882 | 98.678 | 1012.56 | 224 |
| eva02_base_patch14_448.mim_in22k_ft_in22k_in1k | 88.692 | 98.722 | 87.12 | 448 |
| eva_large_patch14_336.in22k_ft_in1k | 88.652 | 98.722 | 304.53 | 336 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.592 | 98.656 | 304.14 | 196 |
| eva02_base_patch14_448.mim_in22k_ft_in1k | 88.23 | 98.564 | 87.12 | 448 |
| eva_large_patch14_196.in22k_ft_in1k | 87.934 | 98.504 | 304.14 | 196 |
| eva02_small_patch14_336.mim_in22k_ft_in1k | 85.74 | 97.614 | 22.13 | 336 |
| eva02_tiny_patch14_336.mim_in22k_ft_in1k | 80.658 | 95.524 | 5.76 | 336 |
- DeiT 및 MLP-Mixer 기반 모델의 Multi-weight 및 HF hub
2023년 3월 22일
regnet.py,rexnet.py,byobnet.py,resnetv2.py,swin_transformer.py,swin_transformer_v2.py,swin_transformer_v2_cr.py를 포함한 다중 가중치 지원과 함께 더 많은 가중치가 HF 허브에 추가되었습니다.- Swin Transformer 모델은 특징 추출(
swinv2_cr_*의 경우 NCHW feat maps, 그 외 모든 경우 NHWC) 및 공간 임베딩 출력을 지원합니다. - FocalNet(https://github.com/microsoft/FocalNet) 모델과 가중치를 대폭 리팩토링하여 추가했으며, 특징 추출을 지원하고 고정된 해상도/크기 제약이 없습니다.
- RegNet 가중치는 HF hub push, SWAG, SEER, torchvision v2 가중치로 증가했습니다. SEER는 모델 크기 대비 성능이 상당히 낮지만, 유용할 수 있습니다.
- ImageNet-12k 사전 학습 및 1k 미세 조정된 추가
timm가중치:rexnetr_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 (SWAG PT + 1k FT와 비교하면 동일하지만 해상도가 훨씬 낮으며, SEER FT를 압도합니다)
- 모델 이름 비추천 및 재매핑 기능이 추가되었습니다(0.8.x의 사전 릴리스 종료라는 마일스톤). 매핑이 추가되고 있습니다…
- 사소한 버그 수정 및 개선 사항.
2023년 2월 26일
- fine-tune 및 features를 위한 ConvNeXt-XXLarge CLIP 사전 학습된 이미지 타워 가중치를 추가했습니다 (fine-tuning은 TBD) — 모델 카드를 참조하세요
convnext_xxlarge의 기본 LayerNorm eps를 1e-5로 업데이트 (CLIP 가중치, 안정성 향상)- 0.8.15dev0
2023년 2월 20일
- 320x320
convnext_large_mlp.clip_laion2b_ft_320및convnext_large_mlp.clip_laion2b_ft_soup_320CLIP 이미지 타워 가중치를 기능 및 미세 조정용으로 추가 - 0.8.13dev0 pypi 릴리스, 최신 변경 사항 및 huggingface org로의 이동
2023년 2월 16일
safetensor체크포인트 지원 추가- ‘Scaling Vision Transformers to 22 B. Params’(https://arxiv.org/abs/2302.05442)에서 qk norm, RmsNorm, parallel block 아이디어를 추가
- F.scaleddot_product_attention 지원 (PyTorch 2.0 전용)을 `vit
,vit_relpos,coatnet/maxxvit`에 추가 (시작) - Lion 옵티마이저(멀티 텐서 옵션 포함) 추가됨 (https://arxiv.org/abs/2302.06675)
features_only=True와 함께 gradient checkpointing이 작동합니다
2023년 2월 7일
- results 폴더에 새로운 추론 벤치마크 수치가 추가되었습니다.
- convnext LAION CLIP 학습 가중치 및 in1k fine-tune 초기 세트 추가
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
- DaViT 모델을 추가합니다.
features_only=True를 지원합니다. Fredo가 https://github.com/dingmyu/davit에서 가져와서 적용했습니다. - MaxViT, ConvNeXt, DaViT에서 NormMlpClassifierHead를 공통으로 사용
- EfficientFormer-V2 모델을 추가하고 EfficientFormer를 업데이트하며 LeViT(밀접하게 관련되어 있는 아키텍처)를 리팩토링했습니다. 가중치는 HF 허브에 있습니다.
- 새로운 EfficientFormer-V2 아키텍처로, (https://github.com/snap-research/EfficientFormer)의 원본에서 상당한 리팩터링이 이루어졌습니다.
features_only=True를 지원합니다. - EfficientFormer의 경미한 업데이트.
- LeViT 모델을 stages로 리팩토링하고, 새로운
conv변형에features_only=True지원을 추가합니다. 가중치 리맵이 필요합니다.
- 새로운 EfficientFormer-V2 아키텍처로, (https://github.com/snap-research/EfficientFormer)의 원본에서 상당한 리팩터링이 이루어졌습니다.
- ImageNet 메타데이터(시네셋, 인덱스)를
/results에서timm/data/_info로 이동합니다. - 에 ImageNetInfo / DatasetInfo 클래스를 추가하여 다양한 ImageNet 분류기 레이아웃에 대한 라벨링을 제공
timminference.py를 다음과 같이 수정하여 사용해 보세요:python inference.py --data-dir /folder/to/images --model convnext_small.in12k --label-type detail --topk 5
- 0.8.10 pypi 사전 릴리스(최종 테스트) 준비 완료.
2023년 1월 20일
384x384에서 두 개의 convnext 12k -> 1k fine-tune을 추가합니다
convnext_tiny.in12k_ft_in1k_384- 85.1 @ 384convnext_small.in12k_ft_in1k_384- 86.2 @ 384
모든 MaxxViT 가중치를 HF 허브에 업로드하고,
rw기반 MaxViT 및 CoAtNet 1/2 모델에 대한 새로운 ImageNet-12k -> 1k 파인튜닝을 추가합니다
| 모델 | top1 | top5 | 초당 샘플 수 | 매개변수 (M) | GMAC | Act (M) |
|---|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.53 | 98.64 | 21.76 | 475.77 | 534.14 | 1413.22 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.32 | 98.54 | 42.53 | 475.32 | 292.78 | 668.76 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.20 | 98.53 | 50.87 | 119.88 | 138.02 | 703.99 |
| maxvit_large_tf_512.in21k_ft_in1k | 88.04 | 98.40 | 36.42 | 212.33 | 244.75 | 942.15 |
| maxvit_large_tf_384.in21k_ft_in1k | 87.98 | 98.56 | 71.75 | 212.03 | 132.55 | 445.84 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.92 | 98.54 | 104.71 | 119.65 | 73.80 | 332.90 |
| maxvit_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.81 | 98.37 | 106.55 | 116.14 | 70.97 | 318.95 |
| maxxvitv2_rmlp_base_rw_384.sw_in12k_ft_in1k | 87.47 | 98.37 | 149.49 | 116.09 | 72.98 | 213.74 |
| coatnet_rmlp_2_rw_384.sw_in12k_ft_in1k | 87.39 | 98.31 | 160.80 | 73.88 | 47.69 | 209.43 |
| maxvit_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.89 | 98.02 | 375.86 | 116.14 | 23.15 | 92.64 |
| maxxvitv2_rmlp_base_rw_224.sw_in12k_ft_in1k | 86.64 | 98.02 | 501.03 | 116.09 | 24.20 | 62.77 |
| maxvit_base_tf_512.in1k | 86.60 | 97.92 | 50.75 | 119.88 | 138.02 | 703.99 |
| coatnet_2_rw_224.sw_in12k_ft_in1k | 86.57 | 97.89 | 631.88 | 73.87 | 15.09 | 49.22 |
| maxvit_large_tf_512.in1k | 86.52 | 97.88 | 36.04 | 212.33 | 244.75 | 942.15 |
| coatnet_rmlp_2_rw_224.sw_in12k_ft_in1k | 86.49 | 97.90 | 620.58 | 73.88 | 15.18 | 54.78 |
| maxvit_base_tf_384.in1k | 86.29 | 97.80 | 101.09 | 119.65 | 73.80 | 332.90 |
| maxvit_large_tf_384.in1k | 86.23 | 97.69 | 70.56 | 212.03 | 132.55 | 445.84 |
| maxvit_small_tf_512.in1k | 86.10 | 97.76 | 88.63 | 69.13 | 67.26 | 383.77 |
| maxvit_tiny_tf_512.in1k | 85.67 | 97.58 | 144.25 | 31.05 | 33.49 | 257.59 |
| maxvit_small_tf_384.in1k | 85.54 | 97.46 | 188.35 | 69.02 | 35.87 | 183.65 |
| maxvit_tiny_tf_384.in1k | 85.11 | 97.38 | 293.46 | 30.98 | 17.53 | 123.42 |
| maxvit_large_tf_224.in1k | 84.93 | 96.97 | 247.71 | 211.79 | 43.68 | 127.35 |
| coatnet_rmlp_1_rw2_224.sw_in12k_ft_in1k | 84.90 | 96.96 | 1025.45 | 41.72 | 8.11 | 40.13 |
| maxvit_base_tf_224.in1k | 84.85 | 96.99 | 358.25 | 119.47 | 24.04 | 95.01 |
| maxxvit_rmlp_small_rw_256.sw_in1k | 84.63 | 97.06 | 575.53 | 66.01 | 14.67 | 58.38 |
| coatnet_rmlp_2_rw_224.sw_in1k | 84.61 | 96.74 | 625.81 | 73.88 | 15.18 | 54.78 |
| maxvit_rmlp_small_rw_224.sw_in1k | 84.49 | 96.76 | 693.82 | 64.90 | 10.75 | 49.30 |
| maxvit_small_tf_224.in1k | 84.43 | 96.83 | 647.96 | 68.93 | 11.66 | 53.17 |
| maxvit_rmlp_tiny_rw_256.sw_in1k | 84.23 | 96.78 | 807.21 | 29.15 | 6.77 | 46.92 |
| coatnet_1_rw_224.sw_in1k | 83.62 | 96.38 | 989.59 | 41.72 | 8.04 | 34.60 |
| maxvit_tiny_rw_224.sw_in1k | 83.50 | 96.50 | 1100.53 | 29.06 | 5.11 | 33.11 |
| maxvit_tiny_tf_224.in1k | 83.41 | 96.59 | 1004.94 | 30.92 | 5.60 | 35.78 |
| coatnet_rmlp_1_rw_224.sw_in1k | 83.36 | 96.45 | 1093.03 | 41.69 | 7.85 | 35.47 |
| maxxvitv2_nano_rw_256.sw_in1k | 83.11 | 96.33 | 1276.88 | 23.70 | 6.26 | 23.05 |
| maxxvit_rmlp_nano_rw_256.sw_in1k | 83.03 | 96.34 | 1341.24 | 16.78 | 4.37 | 26.05 |
| maxvit_rmlp_nano_rw_256.sw_in1k | 82.96 | 96.26 | 1283.24 | 15.50 | 4.47 | 31.92 |
| maxvit_nano_rw_256.sw_in1k | 82.93 | 96.23 | 1218.17 | 15.45 | 4.46 | 30.28 |
| coatnet_bn_0_rw_224.sw_in1k | 82.39 | 96.19 | 1600.14 | 27.44 | 4.67 | 22.04 |
| coatnet_0_rw_224.sw_in1k | 82.39 | 95.84 | 1831.21 | 27.44 | 4.43 | 18.73 |
| coatnet_rmlp_nano_rw_224.sw_in1k | 82.05 | 95.87 | 2109.09 | 15.15 | 2.62 | 20.34 |
| coatnext_nano_rw_224.sw_in1k | 81.95 | 95.92 | 2525.52 | 14.70 | 2.47 | 12.80 |
| coatnet_nano_rw_224.sw_in1k | 81.70 | 95.64 | 2344.52 | 15.14 | 2.41 | 15.41 |
| maxvit_rmlp_pico_rw_256.sw_in1k | 80.53 | 95.21 | 1594.71 | 7.52 | 1.85 | 24.86 |
2023년 1월 11일
- ConvNeXt ImageNet-12k 사전 학습 시리즈에 두 가지 새로운 미세 조정 가중치(및 사전 FT
.in12k태그) 추가convnext_nano.in12k_ft_in1k- 82.3 @ 224, 82.9 @ 288 (이전에 공개됨)convnext_tiny.in12k_ft_in1k- 84.2 @ 224, 84.5 @ 288convnext_small.in12k_ft_in1k- 85.2 @ 224, 85.3 @ 288
2023년 1월 6일
- 드디어 스크립트에
--model-kwargs및--opt-kwargs을 추가하여, 드문 인수를 커맨드 라인에서 모델 클래스로 직접 전달할 수 있게 되었습니다train.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
- 인기 모델 일부를 정리하여 인자 전달을 더 잘 지원하고 모델 구성과 병합하도록 개선합니다. 추가 작업이 예정되어 있습니다.
2023년 1월 5일
- 기존에 ConvNeXt-V2 모델과 가중치가 추가되었습니다
convnext.py- 논문: ConvNeXt V2: Masked Autoencoders를 활용한 ConvNets의 공동 설계 및 확장
- 참조 구현: https://github.com/facebookresearch/ConvNeXt-V2 (참고: 가중치는 현재 CC-BY-NC 라이선스 적용) @dataclass
2022년 12월 23일 🎄☃
- FlexiViT 모델과 가중치를 추가합니다. 출처는 https://github.com/google-research/big_vision (입니다. 논문은 https://arxiv.org/abs/2212.08013)
- NOTE 현재 리사이징은 모델 생성 시점에 정적으로 수행되며, 온더플라이(On-the-fly) 동적/학습 패치 크기 샘플링은 진행 중(WIP)입니다
- 이제 훨씬 더 많은 모델이 다중 가중치로 업데이트되어 HF 허브에서 다운로드할 수 있습니다 (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- 추가 모델 사전 학습 태그 및 조정, 일부 모델 이름 변경 (비권장 사용 번역 작업 중, 현재는 DEV 브랜치를 메인 브랜치로 간주하고, 안정적인 사용에는 0.6.x를 사용하세요)
- ImageNet-12k(22k의 부분 집합) 사전 학습 모델이 계속 등장하고 있습니다:
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
2022년 12월 8일
- ‘EVA l’을(를) 다음에 추가합니다:
vision_transformer.py, EVA-CLIP 타겟을 사용한 MAE 스타일 ViT-L/14 MIM 사전 학습, ImageNet-1k에서 FT (일부는 ImageNet-22k 중간 단계 사용)- original source: https://github.com/baaivision/EVA
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | 링크 |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | 링크 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | 링크 |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | 링크 |
2022년 12월 6일
- ‘EVA g’, MIM 사전학습과 CLIP 사전학습이 모두 포함된 BEiT 스타일 ViT-g/14 모델 가중치를 다음에 추가합니다:
beit.py.- original source: https://github.com/baaivision/EVA
- 논문: https://arxiv.org/abs/2211.07636
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | 링크 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | 링크 |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | 링크 |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | 링크 |
2022년 12월 5일
- 사전 릴리스 (
0.8.0dev0) 멀티 웨이트 지원 (model_arch.pretrained_tag). 로 설치합니다.pip install --pre timm- vision_transformer, maxvit, convnext는 지원이 포함된 첫 번째 세 모델 구현입니다
- 이 변경 사항으로 모델 이름이 바뀌고 있습니다(이전 _21k 등 함수는 병합될 예정이며), 비추천 처리(deprecation) 처리 방식을 정리하고 있습니다.
- 버그가 있을 수 있지만 피드백이 필요하므로 사용해 보시기 바랍니다
- 안정성이 필요하신 경우, 0.6.x pypi 릴리스를 사용하시거나 0.6.x branch에서 클론을 생성하세요.
- train/validate/inference/benchmark에 PyTorch 2.0 compile 지원이 추가되었습니다.
--torchcompile인수를 사용하세요. - Inference script은 출력에 대한 더 세밀한 제어를 허용하며, k를 선택하여 상위 클래스 인덱스 + 확률을 json, csv 또는 parquet 형식으로 출력할 수 있습니다
- LAION-2B와 원본 OpenAI CLIP 모델의 완전한 세트로 미세 조정된 CLIP 이미지 타워 가중치를 추가합니다
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | 링크 |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | 링크 |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | 링크 |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | 링크 |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | 링크 |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | 링크 |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | 링크 |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | 링크 |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | 링크 |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | 링크 |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | 링크 |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | 링크 |
- 공식 구현인 https://github.com/google-research/maxvit 에서 가져온 MaxViT Tensorflow 가중치
- 업스케일링된 384/512 in21k fine-tune 가중치에서 예상보다 큰 성능 저하가 발생했으며, 세부 사항이 누락되었을 가능성이 있습니다. 다만 21k FT는 작은 전처리 변화에 민감한 것으로 보였습니다.
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | 링크 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | 링크 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | 링크 |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | 링크 |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | 링크 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | 링크 |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | 링크 |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | 링크 |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | 링크 |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | 링크 |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | 링크 |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | 링크 |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | 링크 |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | 링크 |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | 링크 |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | 링크 |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | 링크 |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | 링크 |
2022년 10월 15일
- 학습 및 검증 스크립트 개선
- GPU가 아닌 (즉, CPU) 장치 지원
- train 스크립트의 SLURM 호환성
- HF datasets 지원 (ReaderHfds를 통해)
- TFDS/WDS 데이터 로딩 개선(분산 사용 시 샘플 수 추정과 관련하여 샘플 패딩/랩이 수정됨)
- in_chans !=3에 대한 스크립트/로더 지원
- Adan 옵티마이저
- args를 통해 단계별 LR 스케줄링을 활성화할 수 있습니다
- Dataset의 ‘parsers’를 ‘readers’로 이름 변경하여 목적을 더 명확하게 표현
- AMP 인수가 변경되었습니다.
--amp-impl apex를 통해 APEX를,--amp-dtype bfloat16를 통해 bfloat16을 지원합니다 - main branch가 0.7.x 버전으로 전환되었으며, weight only adds의 안정적 릴리스를 위해 0.6x가 포크되었습니다
- master -> main 브랜치 이름 변경
2022년 10월 10일
- 더 많은 가중치가 포함된
maxxvit시리즈, 첫 번째 ConvNeXt 블록 기반coatnext및maxxvit실험:coatnext_nano_rw_224- 82.0 @ 224 (G) — (ConvNeXt 컨볼루션 블록 사용, BatchNorm 없음)maxxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.7 @ 320 (G) (ConvNeXt 컨볼루션 블록 사용, 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) — 더 잘 학습될 수 있으며, 하이퍼파라미터 튜닝이 필요합니다 (ConvNeXt 블록 사용, BN 없음)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- NOTE: 공식 MaxVit 가중치(in1k)는 https://github.com/google-research/maxvit에서 공개되었습니다 — 저의 구현은 theirs와 독립적으로 작성되어 몇 가지 작은 차이점과 TF same padding 관련 문제를 포함하고 있으므로, 이식 및 적응을 위해 추가 작업이 필요합니다.
2022년 9월 23일
- LAION-2B CLIP 이미지 타워가 fine-tune 또는 feature 추출(클래시파이어 없음)을 위한 사전 학습된 백본으로 지원됩니다
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
2022년 9월 7일
- Hugging Face
timm문서 홈이 이제 존재합니다. 앞으로 여기서 더 많은 내용을 찾아보실 수 있습니다. - https://github.com/microsoft/unilm/tree/master/beit2의 base 및 large 224x224 모델에 대한 BEiT-v2 가중치를 추가합니다
- 에 더 많은 가중치를 추가합니다
maxxvit시리즈에는 다음이 포함됩니다pico(7.5M 파라미터, 1.9 GMAC), 두 가지tiny변형: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)
2022년 8월 29일
- MaxVit의 window size는 기본적으로 img_size에 따라 확장됩니다. 이를 활용하는 새로운 RelPosMlp MaxViT 가중치를 추가합니다:
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
2022년 8월 26일
- CoAtNet (https://arxiv.org/abs/2106.04803) 및 MaxVit (https://arxiv.org/abs/2204.01697)
timm의 timmmaxxvit.py모델 정의에 모두 포함되어 있으며, 원본 논문 범위 밖의 수많은 실험을 포함합니다- MaxVit 저자들이 작성한 완성되지 않은 Tensorflow 버전을 https://github.com/google-research/maxvit에서 찾을 수 있습니다.
- 초기 CoAtNet 및 MaxVit timm 사전 학습 가중치(추가 작업 중):
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) — 참고: timm의 ‘0’ coatnets는 3단계 블록이 2개 더 많습니다coatnet_bn_0_rw_224- 82.4 (T)maxvit_nano_rw_256- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224- 83.6 @ 224 (G)- (T) =
bits_and_tpu브랜치의 학습 코드로 TPU에서 학습, (G) = GPU에서 학습
- GCVit(https://github.com/NVlabs/GCVit에서 가중치를 가져옴, 라이선스 관련으로 코드는 100%
timm재작성) - MViT-V2(멀티 스케일 vit, https://github.com/facebookresearch/mvit에서 가져옴)
- EfficientFormer(https://github.com/snap-research/EfficientFormer에서 가져옴)
- PyramidVisionTransformer-V2(https://github.com/whai362/PVT에서 수정)
- AMP 환경에서 float32 업캐스트를 피하는 LayerNorm 및 GroupNorm의 ‘Fast Norm’ 지원(추가 성능 향상을 위해 사용 가능한 경우 APEX LN 사용)
2022년 8월 15일
- ConvNeXt atto 가중치 추가됨
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
2022년 8월 5일
- 가중치가 포함된 더 작은 커스텀 ConvNeXt 모델 정의
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
- ONNX 내보내기를 개선하고, 새로운 base 변형과 원본(https://github.com/mmaaz60/EdgeNeXt)의 가중치를 추가하여 EdgeNeXt를 업데이트했습니다
2022년 7월 28일
- 새로 추가된 DeiT-III Medium (width=512, depth=12, num_heads=8) 모델 가중치를 추가했습니다. Hugo Touvron님께 감사드립니다!
2022년 7월 27일
- 모든 런타임 벤치마크 및 검증 결과 csv 파일이 마침내 최신 상태로 업데이트되었습니다!
- 추가된 가중치 및 모델 정의:
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*가중치는 모두 TPU에서bits_and_tpu브랜치를 사용하여 학습되었습니다. TRC 프로그램에 감사드립니다!- ConvNeXt에 output_stride=8 및 16 지원 추가 (dilation)
- deit3 모델의 pos_emb 리사이즈 불가 문제 수정
- Version 0.6.7 PyPi 릴리스 (0.6.5 이후 위의 버그 수정 및 새로운 웨이트 포함)
2022년 7월 8일
더 많은 모델, 더 많은 수정
- 공식 연구 모델(가중치 포함) 추가:
- (https://github.com/mmaaz60/EdgeNeXt)의 EdgeNeXt
- (https://github.com/apple/ml-cvnets)의 MobileViT-V2
- (https://github.com/facebookresearch/deit)의 DeiT III (ViT의 복수)
- 내 모델:
- 요청에 따라 기본 블록과 병목 블록 모두에서 1개의 블록 반복을 가진 작은
ResNet정의(resnet10 및 resnet14)를 추가했습니다 CspNet은 dataclass config로 리팩터링되었으며, CrossStage3(cs3) 옵션이 단순화되었습니다. 이는 YOLO-v5+ backbone 정의에 더 가깝습니다.- 상대 위치 vit 관련 추가 조정.
srelpos(공유 상대 위치) 모델 2개를 학습했으며, 그중 하나는 중간 크기이며 클래스 토큰을 포함합니다. - EdgeNeXt에 대용량 다운샘플링 모드를 추가하고
small모델을 학습합니다. 원래 small 모델보다 성능이 좋지만, 새로운 USI 학습 가중치에는 미치지 못합니다.
- 요청에 따라 기본 블록과 병목 블록 모두에서 1개의 블록 반복을 가진 작은
- 저의 모델 가중치 결과 (모두 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,darknet,vit_*relpos위의 가중치는 모두 TRC 프로그램을 통해 TPU에서 학습되었습니다. 나머지는 과열되는 GPU에서 학습되었습니다.- Hugging Face Hub 지원 수정 사항 검증 완료, 데모 노트북은 추후 제공
- Pretrained weights / configs는 헤드 적응(head adaptation)을 지원하면서 외부(예: 로컬 디스크)에서 로드할 수 있습니다.
timm데이터셋/리더가 스캔하는 이미지 확장자를 변경할 수 있도록 지원 추가. (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103)- 사용할 기본 ConvNeXt LayerNorm 구현
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)경유LayerNorm2d모든 경우에.- 일부 하드웨어(예: CL이 있는 Ampere)에서는 이전 커스텀 구현보다 약간 느리지만, 더 넓은 하드웨어 및 PyTorch 버전 범위 전반에 걸쳐 회귀가 더 적습니다.
- 이전 구현은
models/layers/norm.py에LayerNormExp2d로 존재합니다
- 다수의 버그 수정
- 현재 PyPi 0.6.x 릴리스를 앞두고 테스트 중입니다
- LeViT의 더 큰 모델에 대한 사전 학습은 아직 진행 중(WIP)이며, 증류 없이 잘/쉽게 학습되지 않습니다. 드디어 증류 지원을 추가할 때인가요?
- ImageNet-22k 가중치 학습 + fine-tuning 진행 중, 다중 가중치 지원 작업(느리게) 꾸준히 진행 중(가중치가 매우 많아서, 한숨) …
2022년 5월 13일
- (https://github.com/microsoft/Swin-Transformer)에서 가져온 공식 Swin-V2 모델과 가중치를 추가했습니다. torchscript를 지원하도록 정리했습니다.
- 기존
timmSwin-V2-CR 구현에 대한 일부 리팩토링을 진행할 예정입니다. 공식 구현과 일부 부분을 더 가깝게 맞추기 위해 추가 작업을 수행하고, 일부 측면을 병합할지 여부를 결정할 것입니다. - Vision Transformer 상대 위치 / 잔차 post-norm 실험 추가 (TRC 프로그램 덕분에 모두 TPU에서 학습)
vit_relpos_small_patch16_224- 81.5 @ 224, 82.5 @ 320 — rel pos, layer scale, no class token, avg poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, 클래스 토큰 없음, avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, no class token, avg poolvit_relpos_base_patch16_gapcls_224- 82.8 @ 224, 83.9 @ 320 — 상대 위치, 레이어 스케일, 클래스 토큰, 평균 풀링 (실수로)
- 2020년 첫 ViT 구현 당시 DeiT 이전의 ‘small’ 모델에 사용했던 512차원, 8헤드 ‘medium’ ViT 모델 변형을 다시 활성화합니다
- ViT 상대 위치 지원 추가: 기존 구현과 향후 실험을 위한 공식 Swin-V2 구현의 일부 추가 기능 간 전환
- Sequencer2D 구현 (https://arxiv.org/abs/2205.01972), 저자(https://github.com/okojoalg)의 PR을 통해 추가
2022년 5월 2일
- Relative Position(Swin-V2 log-coord)을 추가한 Vision Transformer 실험(
vision_transformer_relpos.py) 및 Residual Post-Norm 브랜치(Swin-V2에서 가져옴)(vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79.5 @ 256, 80.6 @ 320 — 상대 위치 + 확장된 폭 + res-post-norm, 클래스 토큰 없음, 평균 풀링vit_relpos_base_patch16_224- 82.5 @ 224, 83.6 @ 320 — rel pos, layer scale, no class token, avg poolvit_base_patch16_rpn_224- 82.3 @ 224 — rel pos + res-post-norm, 클래스 토큰 없음, avg pool
How to Train Your ViT와 같은 새로운 사전 학습 방식에서는 거의 사용되지 않았던 초기 vit에만 사용되던 표현 계층을 제거하기 위한 Vision Transformer 리팩터링vit_*모델은 클래스 토큰 제거, 전역 평균 풀링 사용, fc_norm(beit, mae 방식) 사용을 지원합니다.
2022년 4월 22일
timm모델이 이제 fast.ai에서 공식적으로 지원됩니다! 새로운 Practical Deep Learning 코스를 앞두고 있습니다.timmdocs문서 링크가 timm.fast.ai로 업데이트되었습니다.- TPU 학습에서 추가된 모델 가중치 2개 시리즈. 일부 In22k 사전 학습은 아직 진행 중입니다.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(AvgPool2d로 안티앨리어싱 처리) - 224에서 83.85, 288에서 84.57
2022년 3월 23일
ParallelBlock및LayerScale옵션을 기본 vit 모델에 추가하여 Three things everyone should know about ViT의 모델 구성을 지원합니다convnext_tiny_hnf(head norm first) 가중치는 (거의) A2 레시피로 학습되었으며, top-1 정확도는 82.2%입니다. 에포크를 더 늘리면 더 나은 결과를 얻을 수 있습니다.
2022년 3월 21일
norm_norm_norm을 병합합니다. 중요 다가오는 0.6.x 릴리스를 위한 이번 업데이트로 인해 master 브랜치가 당분간 불안정해질 수 있습니다. 안정성이 필요할 경우0.5.x브랜치 또는 이전 0.5.x 릴리스를 사용할 수 있습니다.- 이 릴리스
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
- HuggingFace hub 지원이 수정되었으며, 사전 학습된 모델 정의 및 가중치에 대한 대안적 ‘config sources’를 허용하기 위한 초기 기반 작업이 완료되었습니다(일반적인 로컬 파일/원격 URL 지원은 곧 제공됩니다)
- SwinTransformer-V2 구현이 추가되었습니다. Christoph Reich님이 제출했습니다. 학습 실험 및 모델 변경 작업이 진행 중이므로 호환성 문제가 발생할 수 있습니다.
- https://github.com/microsoft/Cream/tree/main/AutoFormerV2에서 Swin-S3 (AutoFormerV2) 모델/가중치를 추가했습니다
- 가중치가 https://github.com/apple/ml-cvnets에서 가져온 MobileViT 모델
- https://github.com/sail-sg/poolformer에서 가중치를 가져와 적용한 PoolFormer 모델
- 가중치가 https://github.com/sail-sg/volo에서 가져온 VOLO 모델
- EvoNorm, FilterResponseNorm, GroupNorm 등 BatchNorm이 아닌 정규화 레이어를 실험하는 상당한 작업
- EfficientNet/MobileNetV3, RegNet, aligned Xception 등 여러 모델에 추가된 대체 norm + act(‘NormAct’) 레이어에 대한 지원을 강화했습니다
- EfficientNet 계열에 Grouped conv 지원 추가
- 모든 모델에 ‘group matching’ API를 추가하여 모델 파라미터를 그룹화하고 ‘layer-wise’ LR 감쇠를 적용할 수 있도록 하며, LR 스케줄러에 lr scale을 추가합니다
- 많은 모델에 Gradient checkpointing 지원 추가
forward_head(x, pre_logits=False)모든 모델에 추가된 함수로,forward_features와forward_head를 별도로 호출할 수 있도록 합니다- 모든 vision transformer 및 vision MLP 모델은 CNN 모델과의 일관성을 위해
forward_features에서 풀링되지 않고 토큰 선택이 적용되지 않은 특징을 반환하도록 업데이트되었습니다. 토큰 선택 또는 풀링은 이제forward_head에서 적용됩니다.
2022년 2월 2일
- Chris Hughes는 어제 자신의 블로그에서
timm에 대한 포괄적인 실행 과정을 게시했습니다. 꼭 읽어볼 가치가 있습니다. PyTorch Image Models (timm) 시작하기: 실무자 가이드 - 현재
norm_norm_norm브랜치를 다음 주쯤 master(ver 0.6.x)로 병합할 준비를 하고 있습니다.- 변경 사항이 평소보다 광범위하며, 일부 모델 API 사용이 불안정해지거나 깨질 수 있습니다(완전한 하위 호환성을 목표로 함). 따라서
pip install git+https://github.com/rwightman/pytorch-image-models설치를 주의하세요! 0.5.x릴리스와0.5.x브랜치는 상황이 안정될 때까지 1~2건의 체리픽을 포함하여 안정적으로 유지됩니다. 안정성을 원하신다면 당분간 pypi 설치를 사용하는 것을 권장합니다.
- 변경 사항이 평소보다 광범위하며, 일부 모델 API 사용이 불안정해지거나 깨질 수 있습니다(완전한 하위 호환성을 목표로 함). 따라서
2022년 1월 14일
- Version 0.5.4 릴리스 버전이 pypi에 배포될 예정입니다. 마지막 pypi 업데이트 이후 상당한 시간이 경과했으며, 위험도가 높은 변경 사항들이 곧 main 브랜치에 병합될 예정입니다…
- 공식 구현(https://github.com/facebookresearch/ConvNeXt)의 가중치를 포함한 ConvNeXT 모델을 추가하고, 몇 가지 성능 최적화를 적용했으며, timm 기능과 호환됩니다
- 소규모(약 180만~300만 파라미터) / 모바일 최적화 모델 몇 가지를 학습해 보았는데, 몇몇은 지금까지 좋은 결과를 보이고 있으며 더 많은 결과가 나올 예정입니다…
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
- rsomani95가 추가한 TinyNet 모델
- MobileNetV3 아키텍처를 통해 LCNet 추가
2023년 1월 5일
- 기존에 ConvNeXt-V2 모델과 가중치가 추가되었습니다
convnext.py- 논문: ConvNeXt V2: Masked Autoencoders를 활용한 ConvNets의 공동 설계 및 확장
- 참조 구현: https://github.com/facebookresearch/ConvNeXt-V2 (참고: 가중치는 현재 CC-BY-NC 라이선스 적용)
2022년 12월 23일 🎄☃
- FlexiViT 모델과 가중치를 추가합니다. 출처는 https://github.com/google-research/big_vision (입니다. 논문은 https://arxiv.org/abs/2212.08013)
- NOTE 현재 리사이징은 모델 생성 시점에 정적으로 수행되며, 온더플라이(On-the-fly) 동적/학습 패치 크기 샘플링은 진행 중(WIP)입니다
- 이제 훨씬 더 많은 모델이 다중 가중치로 업데이트되어 HF 허브에서 다운로드할 수 있습니다 (convnext, efficientnet, mobilenet, vision_transformer*, beit)
- 추가 모델 사전 학습 태그 및 조정, 일부 모델 이름 변경 (비권장 사용 번역 작업 중, 현재는 DEV 브랜치를 메인 브랜치로 간주하고, 안정적인 사용에는 0.6.x를 사용하세요)
- ImageNet-12k(22k의 부분 집합) 사전 학습 모델이 계속 등장하고 있습니다:
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
2022년 12월 8일
- ‘EVA l’을(를) 다음에 추가합니다:
vision_transformer.py, EVA-CLIP 타겟을 사용한 MAE 스타일 ViT-L/14 MIM 사전 학습, ImageNet-1k에서 FT (일부는 ImageNet-22k 중간 단계 사용)- original source: https://github.com/baaivision/EVA
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_large_patch14_336.in22k_ft_in22k_in1k | 89.2 | 304.5 | 191.1 | 270.2 | 링크 |
| eva_large_patch14_336.in22k_ft_in1k | 88.7 | 304.5 | 191.1 | 270.2 | 링크 |
| eva_large_patch14_196.in22k_ft_in22k_in1k | 88.6 | 304.1 | 61.6 | 63.5 | 링크 |
| eva_large_patch14_196.in22k_ft_in1k | 87.9 | 304.1 | 61.6 | 63.5 | 링크 |
2022년 12월 6일
- ‘EVA g’, MIM 사전학습과 CLIP 사전학습이 모두 포함된 BEiT 스타일 ViT-g/14 모델 가중치를 다음에 추가합니다:
beit.py.- original source: https://github.com/baaivision/EVA
- 논문: https://arxiv.org/abs/2211.07636
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| eva_giant_patch14_560.m30m_ft_in22k_in1k | 89.8 | 1014.4 | 1906.8 | 2577.2 | 링크 |
| eva_giant_patch14_336.m30m_ft_in22k_in1k | 89.6 | 1013 | 620.6 | 550.7 | 링크 |
| eva_giant_patch14_336.clip_ft_in1k | 89.4 | 1013 | 620.6 | 550.7 | 링크 |
| eva_giant_patch14_224.clip_ft_in1k | 89.1 | 1012.6 | 267.2 | 192.6 | 링크 |
2022년 12월 5일
- 사전 릴리스 (
0.8.0dev0) 멀티 웨이트 지원 (model_arch.pretrained_tag). 로 설치합니다.pip install --pre timm- vision_transformer, maxvit, convnext는 지원이 포함된 첫 번째 세 모델 구현입니다
- 이 변경 사항으로 모델 이름이 바뀌고 있습니다(이전 _21k 등 함수는 병합될 예정이며), 비추천 처리(deprecation) 처리 방식을 정리하고 있습니다.
- 버그가 있을 수 있지만 피드백이 필요하므로 사용해 보시기 바랍니다
- 안정성이 필요하신 경우, 0.6.x pypi 릴리스를 사용하시거나 0.6.x branch에서 클론을 생성하세요.
- train/validate/inference/benchmark에 PyTorch 2.0 compile 지원이 추가되었습니다.
--torchcompile인수를 사용하세요. - Inference script은 출력에 대한 더 세밀한 제어를 허용하며, k를 선택하여 상위 클래스 인덱스 + 확률을 json, csv 또는 parquet 형식으로 출력할 수 있습니다
- LAION-2B와 원본 OpenAI CLIP 모델의 완전한 세트로 미세 조정된 CLIP 이미지 타워 가중치를 추가합니다
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| vit_huge_patch14_clip_336.laion2b_ft_in12k_in1k | 88.6 | 632.5 | 391 | 407.5 | 링크 |
| vit_large_patch14_clip_336.openai_ft_in12k_in1k | 88.3 | 304.5 | 191.1 | 270.2 | 링크 |
| vit_huge_patch14_clip_224.laion2b_ft_in12k_in1k | 88.2 | 632 | 167.4 | 139.4 | 링크 |
| vit_large_patch14_clip_336.laion2b_ft_in12k_in1k | 88.2 | 304.5 | 191.1 | 270.2 | 링크 |
| vit_large_patch14_clip_224.openai_ft_in12k_in1k | 88.2 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_large_patch14_clip_224.laion2b_ft_in12k_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_large_patch14_clip_224.openai_ft_in1k | 87.9 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_large_patch14_clip_336.laion2b_ft_in1k | 87.9 | 304.5 | 191.1 | 270.2 | 링크 |
| vit_huge_patch14_clip_224.laion2b_ft_in1k | 87.6 | 632 | 167.4 | 139.4 | 링크 |
| vit_large_patch14_clip_224.laion2b_ft_in1k | 87.3 | 304.2 | 81.1 | 88.8 | 링크 |
| vit_base_patch16_clip_384.laion2b_ft_in12k_in1k | 87.2 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_384.openai_ft_in12k_in1k | 87 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_384.laion2b_ft_in1k | 86.6 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_384.openai_ft_in1k | 86.2 | 86.9 | 55.5 | 101.6 | 링크 |
| vit_base_patch16_clip_224.laion2b_ft_in12k_in1k | 86.2 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch16_clip_224.openai_ft_in12k_in1k | 85.9 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch32_clip_448.laion2b_ft_in12k_in1k | 85.8 | 88.3 | 17.9 | 23.9 | 링크 |
| vit_base_patch16_clip_224.laion2b_ft_in1k | 85.5 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch32_clip_384.laion2b_ft_in12k_in1k | 85.4 | 88.3 | 13.1 | 16.5 | 링크 |
| vit_base_patch16_clip_224.openai_ft_in1k | 85.3 | 86.6 | 17.6 | 23.9 | 링크 |
| vit_base_patch32_clip_384.openai_ft_in12k_in1k | 85.2 | 88.3 | 13.1 | 16.5 | 링크 |
| vit_base_patch32_clip_224.laion2b_ft_in12k_in1k | 83.3 | 88.2 | 4.4 | 5 | 링크 |
| vit_base_patch32_clip_224.laion2b_ft_in1k | 82.6 | 88.2 | 4.4 | 5 | 링크 |
| vit_base_patch32_clip_224.openai_ft_in1k | 81.9 | 88.2 | 4.4 | 5 | 링크 |
- 공식 구현인 https://github.com/google-research/maxvit 에서 가져온 MaxViT Tensorflow 가중치
- 업스케일링된 384/512 in21k fine-tune 가중치에서 예상보다 큰 성능 저하가 발생했으며, 세부 사항이 누락되었을 가능성이 있습니다. 다만 21k FT는 작은 전처리 변화에 민감한 것으로 보였습니다.
| 모델 | top1 | param_count | gmac | macts | hub |
|---|---|---|---|---|---|
| maxvit_xlarge_tf_512.in21k_ft_in1k | 88.5 | 475.8 | 534.1 | 1413.2 | 링크 |
| maxvit_xlarge_tf_384.in21k_ft_in1k | 88.3 | 475.3 | 292.8 | 668.8 | 링크 |
| maxvit_base_tf_512.in21k_ft_in1k | 88.2 | 119.9 | 138 | 704 | 링크 |
| maxvit_large_tf_512.in21k_ft_in1k | 88 | 212.3 | 244.8 | 942.2 | 링크 |
| maxvit_large_tf_384.in21k_ft_in1k | 88 | 212 | 132.6 | 445.8 | 링크 |
| maxvit_base_tf_384.in21k_ft_in1k | 87.9 | 119.6 | 73.8 | 332.9 | 링크 |
| maxvit_base_tf_512.in1k | 86.6 | 119.9 | 138 | 704 | 링크 |
| maxvit_large_tf_512.in1k | 86.5 | 212.3 | 244.8 | 942.2 | 링크 |
| maxvit_base_tf_384.in1k | 86.3 | 119.6 | 73.8 | 332.9 | 링크 |
| maxvit_large_tf_384.in1k | 86.2 | 212 | 132.6 | 445.8 | 링크 |
| maxvit_small_tf_512.in1k | 86.1 | 69.1 | 67.3 | 383.8 | 링크 |
| maxvit_tiny_tf_512.in1k | 85.7 | 31 | 33.5 | 257.6 | 링크 |
| maxvit_small_tf_384.in1k | 85.5 | 69 | 35.9 | 183.6 | 링크 |
| maxvit_tiny_tf_384.in1k | 85.1 | 31 | 17.5 | 123.4 | 링크 |
| maxvit_large_tf_224.in1k | 84.9 | 211.8 | 43.7 | 127.4 | 링크 |
| maxvit_base_tf_224.in1k | 84.9 | 119.5 | 24 | 95 | 링크 |
| maxvit_small_tf_224.in1k | 84.4 | 68.9 | 11.7 | 53.2 | 링크 |
| maxvit_tiny_tf_224.in1k | 83.4 | 30.9 | 5.6 | 35.8 | 링크 |
2022년 10월 15일
- 학습 및 검증 스크립트 개선
- GPU가 아닌 (즉, CPU) 장치 지원
- train 스크립트의 SLURM 호환성
- HF datasets 지원 (ReaderHfds를 통해)
- TFDS/WDS 데이터 로딩 개선(분산 사용 시 샘플 수 추정과 관련하여 샘플 패딩/랩이 수정됨)
- in_chans !=3에 대한 스크립트/로더 지원
- Adan 옵티마이저
- args를 통해 단계별 LR 스케줄링을 활성화할 수 있습니다
- Dataset의 ‘parsers’를 ‘readers’로 이름 변경하여 목적을 더 명확하게 표현
- AMP 인수가 변경되었습니다.
--amp-impl apex를 통해 APEX를,--amp-dtype bfloat16를 통해 bfloat16을 지원합니다 - main branch가 0.7.x 버전으로 전환되었으며, weight only adds의 안정적 릴리스를 위해 0.6x가 포크되었습니다
- master -> main 브랜치 이름 변경
2022년 10월 10일
- 더 많은 가중치가 포함된
maxxvit시리즈, 첫 번째 ConvNeXt 블록 기반coatnext및maxxvit실험:coatnext_nano_rw_224- 82.0 @ 224 (G) — (ConvNeXt 컨볼루션 블록 사용, BatchNorm 없음)maxxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.7 @ 320 (G) (ConvNeXt 컨볼루션 블록 사용, 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) — 더 잘 학습될 수 있으며, 하이퍼파라미터 튜닝이 필요합니다 (ConvNeXt 블록 사용, BN 없음)coatnet_rmlp_2_rw_224- 84.6 @ 224, 85 @ 320 (T)- NOTE: 공식 MaxVit 가중치(in1k)는 https://github.com/google-research/maxvit에서 공개되었습니다 — 저의 구현은 theirs와 독립적으로 작성되어 몇 가지 작은 차이점과 TF same padding 관련 문제를 포함하고 있으므로, 이식 및 적응을 위해 추가 작업이 필요합니다.
2022년 9월 23일
- LAION-2B CLIP 이미지 타워가 fine-tune 또는 feature 추출(클래시파이어 없음)을 위한 사전 학습된 백본으로 지원됩니다
- vit_base_patch32_224_clip_laion2b
- vit_large_patch14_224_clip_laion2b
- vit_huge_patch14_224_clip_laion2b
- vit_giant_patch14_224_clip_laion2b
2022년 9월 7일
- Hugging Face
timm문서 홈이 이제 존재합니다. 앞으로 여기서 더 많은 내용을 찾아보실 수 있습니다. - https://github.com/microsoft/unilm/tree/master/beit2의 base 및 large 224x224 모델에 대한 BEiT-v2 가중치를 추가합니다
- 에 더 많은 가중치를 추가합니다
maxxvit시리즈에는 다음이 포함됩니다pico(7.5M 파라미터, 1.9 GMAC), 두 가지tiny변형: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)
2022년 8월 29일
- MaxVit의 window size는 기본적으로 img_size에 따라 확장됩니다. 이를 활용하는 새로운 RelPosMlp MaxViT 가중치를 추가합니다:
maxvit_rmlp_nano_rw_256- 83.0 @ 256, 83.6 @ 320 (T)
2022년 8월 26일
- CoAtNet (https://arxiv.org/abs/2106.04803) 및 MaxVit (https://arxiv.org/abs/2204.01697)
timm의 timmmaxxvit.py모델 정의에 모두 포함되어 있으며, 원본 논문 범위 밖의 수많은 실험을 포함합니다- MaxVit 저자들이 작성한 완성되지 않은 Tensorflow 버전을 https://github.com/google-research/maxvit에서 찾을 수 있습니다.
- 초기 CoAtNet 및 MaxVit timm 사전 학습 가중치(추가 작업 중):
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) — 참고: timm의 ‘0’ coatnets는 3단계 블록이 2개 더 많습니다coatnet_bn_0_rw_224- 82.4 (T)maxvit_nano_rw_256- 82.9 @ 256 (T)coatnet_rmlp_1_rw_224- 83.4 @ 224, 84 @ 320 (T)coatnet_1_rw_224- 83.6 @ 224 (G)- (T) =
bits_and_tpu브랜치의 학습 코드로 TPU에서 학습, (G) = GPU에서 학습
- GCVit(https://github.com/NVlabs/GCVit에서 가중치를 가져옴, 라이선스 관련으로 코드는 100%
timm재작성) - MViT-V2(멀티 스케일 vit, https://github.com/facebookresearch/mvit에서 가져옴)
- EfficientFormer(https://github.com/snap-research/EfficientFormer에서 가져옴)
- PyramidVisionTransformer-V2(https://github.com/whai362/PVT에서 수정)
- AMP 환경에서 float32 업캐스트를 피하는 LayerNorm 및 GroupNorm의 ‘Fast Norm’ 지원(추가 성능 향상을 위해 사용 가능한 경우 APEX LN 사용)
2022년 8월 15일
- ConvNeXt atto 가중치 추가됨
convnext_atto- 75.7 @ 224, 77.0 @ 288convnext_atto_ols- 75.9 @ 224, 77.2 @ 288
2022년 8월 5일
- 가중치가 포함된 더 작은 커스텀 ConvNeXt 모델 정의
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
- ONNX 내보내기를 개선하고, 새로운 base 변형과 원본(https://github.com/mmaaz60/EdgeNeXt)의 가중치를 추가하여 EdgeNeXt를 업데이트했습니다
2022년 7월 28일
- 새로 추가된 DeiT-III Medium (width=512, depth=12, num_heads=8) 모델 가중치를 추가했습니다. Hugo Touvron님께 감사드립니다!
2022년 7월 27일
- 모든 런타임 벤치마크 및 검증 결과 csv 파일이 최신 상태입니다!
- 추가된 가중치 및 모델 정의:
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*가중치는 모두 TPU에서bits_and_tpu브랜치를 사용하여 학습되었습니다. TRC 프로그램에 감사드립니다!- ConvNeXt에 output_stride=8 및 16 지원 추가 (dilation)
- deit3 모델의 pos_emb 리사이즈 불가 문제 수정
- Version 0.6.7 PyPi 릴리스 (0.6.5 이후 위의 버그 수정 및 새로운 웨이트 포함)
2022년 7월 8일
더 많은 모델, 더 많은 수정
- 공식 연구 모델(가중치 포함) 추가:
- (https://github.com/mmaaz60/EdgeNeXt)의 EdgeNeXt
- (https://github.com/apple/ml-cvnets)의 MobileViT-V2
- (https://github.com/facebookresearch/deit)의 DeiT III (ViT의 복수)
- 내 모델:
- 요청에 따라 기본 블록과 병목 블록 모두에서 1개의 블록 반복을 가진 작은
ResNet정의(resnet10 및 resnet14)를 추가했습니다 CspNet은 dataclass config로 리팩터링되었으며, CrossStage3(cs3) 옵션이 단순화되었습니다. 이는 YOLO-v5+ backbone 정의에 더 가깝습니다.- 상대 위치 vit 관련 추가 조정.
srelpos(공유 상대 위치) 모델 2개를 학습했으며, 그중 하나는 중간 크기이며 클래스 토큰을 포함합니다. - EdgeNeXt에 대용량 다운샘플링 모드를 추가하고
small모델을 학습합니다. 원래 small 모델보다 성능이 좋지만, 새로운 USI 학습 가중치에는 미치지 못합니다.
- 요청에 따라 기본 블록과 병목 블록 모두에서 1개의 블록 반복을 가진 작은
- 저의 모델 가중치 결과 (모두 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,darknet,vit_*relpos위의 가중치는 모두 TRC 프로그램을 통해 TPU에서 학습되었습니다. 나머지는 과열되는 GPU에서 학습되었습니다.- Hugging Face Hub 지원 수정 사항 검증 완료, 데모 노트북은 추후 제공
- Pretrained weights / configs는 헤드 적응(head adaptation)을 지원하면서 외부(예: 로컬 디스크)에서 로드할 수 있습니다.
timm데이터셋/파서가 스캔하는 이미지 확장자를 변경할 수 있도록 지원 추가. (https://github.com/rwightman/pytorch-image-models/pull/1274#issuecomment-1178303103)- 사용할 기본 ConvNeXt LayerNorm 구현
F.layer_norm(x.permute(0, 2, 3, 1), ...).permute(0, 3, 1, 2)경유LayerNorm2d모든 경우에.- 일부 하드웨어(예: CL이 있는 Ampere)에서는 이전 커스텀 구현보다 약간 느리지만, 더 넓은 하드웨어 및 PyTorch 버전 범위 전반에 걸쳐 회귀가 더 적습니다.
- 이전 구현은
models/layers/norm.py에LayerNormExp2d로 존재합니다
- 다수의 버그 수정
- 현재 PyPi 0.6.x 릴리스를 앞두고 테스트 중입니다
- LeViT의 더 큰 모델에 대한 사전 학습은 아직 진행 중(WIP)이며, 증류 없이 잘/쉽게 학습되지 않습니다. 드디어 증류 지원을 추가할 때인가요?
- ImageNet-22k 가중치 학습 + fine-tuning 진행 중, 다중 가중치 지원 작업(느리게) 꾸준히 진행 중(가중치가 매우 많아서, 한숨) …
2022년 5월 13일
- (https://github.com/microsoft/Swin-Transformer)에서 가져온 공식 Swin-V2 모델과 가중치를 추가했습니다. torchscript를 지원하도록 정리했습니다.
- 기존
timmSwin-V2-CR 구현에 대한 일부 리팩토링을 진행할 예정입니다. 공식 구현과 일부 부분을 더 가깝게 맞추기 위해 추가 작업을 수행하고, 일부 측면을 병합할지 여부를 결정할 것입니다. - Vision Transformer 상대 위치 / 잔차 post-norm 실험 추가 (TRC 프로그램 덕분에 모두 TPU에서 학습)
vit_relpos_small_patch16_224- 81.5 @ 224, 82.5 @ 320 — rel pos, layer scale, no class token, avg poolvit_relpos_medium_patch16_rpn_224- 82.3 @ 224, 83.1 @ 320 — rel pos + res-post-norm, 클래스 토큰 없음, avg poolvit_relpos_medium_patch16_224- 82.5 @ 224, 83.3 @ 320 — rel pos, layer scale, no class token, avg poolvit_relpos_base_patch16_gapcls_224- 82.8 @ 224, 83.9 @ 320 — 상대 위치, 레이어 스케일, 클래스 토큰, 평균 풀링 (실수로)
- 2020년 첫 ViT 구현 당시 DeiT 이전의 ‘small’ 모델에 사용했던 512차원, 8헤드 ‘medium’ ViT 모델 변형을 다시 활성화합니다
- ViT 상대 위치 지원 추가: 기존 구현과 향후 실험을 위한 공식 Swin-V2 구현의 일부 추가 기능 간 전환
- Sequencer2D 구현 (https://arxiv.org/abs/2205.01972), 저자(https://github.com/okojoalg)의 PR을 통해 추가
2022년 5월 2일
- Relative Position(Swin-V2 log-coord)을 추가한 Vision Transformer 실험(
vision_transformer_relpos.py) 및 Residual Post-Norm 브랜치(Swin-V2에서 가져옴)(vision_transformer*.py)vit_relpos_base_patch32_plus_rpn_256- 79.5 @ 256, 80.6 @ 320 — 상대 위치 + 확장된 폭 + res-post-norm, 클래스 토큰 없음, 평균 풀링vit_relpos_base_patch16_224- 82.5 @ 224, 83.6 @ 320 — rel pos, layer scale, no class token, avg poolvit_base_patch16_rpn_224- 82.3 @ 224 — rel pos + res-post-norm, 클래스 토큰 없음, avg pool
How to Train Your ViT와 같은 새로운 사전 학습 방식에서는 거의 사용되지 않았던 초기 vit에만 사용되던 표현 계층을 제거하기 위한 Vision Transformer 리팩터링vit_*모델은 클래스 토큰 제거, 전역 평균 풀링 사용, fc_norm(beit, mae 방식) 사용을 지원합니다.
2022년 4월 22일
timm모델이 이제 fast.ai에서 공식적으로 지원됩니다! 새로운 Practical Deep Learning 코스를 앞두고 있습니다.timmdocs문서 링크가 timm.fast.ai로 업데이트되었습니다.- TPU 학습에서 추가된 모델 가중치 2개 시리즈. 일부 In22k 사전 학습은 아직 진행 중입니다.
seresnext101d_32x8d- 83.69 @ 224, 84.35 @ 288seresnextaa101d_32x8d(AvgPool2d로 안티앨리어싱 처리) - 224에서 83.85, 288에서 84.57
2022년 3월 23일
ParallelBlock및LayerScale옵션을 기본 vit 모델에 추가하여 Three things everyone should know about ViT의 모델 구성을 지원합니다convnext_tiny_hnf(head norm first) 가중치는 (거의) A2 레시피로 학습되었으며, top-1 정확도는 82.2%입니다. 에포크를 더 늘리면 더 나은 결과를 얻을 수 있습니다.
2022년 3월 21일
norm_norm_norm을 병합합니다. 중요 다가오는 0.6.x 릴리스를 위한 이번 업데이트로 인해 master 브랜치가 당분간 불안정해질 수 있습니다. 안정성이 필요할 경우0.5.x브랜치 또는 이전 0.5.x 릴리스를 사용할 수 있습니다.- 이 릴리스
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
- HuggingFace hub 지원이 수정되었으며, 사전 학습된 모델 정의 및 가중치에 대한 대안적 ‘config sources’를 허용하기 위한 초기 기반 작업이 완료되었습니다(일반적인 로컬 파일/원격 URL 지원은 곧 제공됩니다)
- SwinTransformer-V2 구현이 추가되었습니다. Christoph Reich님이 제출했습니다. 학습 실험 및 모델 변경 작업이 진행 중이므로 호환성 문제가 발생할 수 있습니다.
- https://github.com/microsoft/Cream/tree/main/AutoFormerV2에서 Swin-S3 (AutoFormerV2) 모델/가중치를 추가했습니다
- 가중치가 https://github.com/apple/ml-cvnets에서 가져온 MobileViT 모델
- https://github.com/sail-sg/poolformer에서 가중치를 가져와 적용한 PoolFormer 모델
- 가중치가 https://github.com/sail-sg/volo에서 가져온 VOLO 모델
- EvoNorm, FilterResponseNorm, GroupNorm 등 BatchNorm이 아닌 정규화 레이어를 실험하는 상당한 작업
- EfficientNet/MobileNetV3, RegNet, aligned Xception 등 여러 모델에 추가된 대체 norm + act(‘NormAct’) 레이어에 대한 지원을 강화했습니다
- EfficientNet 계열에 Grouped conv 지원 추가
- 모든 모델에 ‘group matching’ API를 추가하여 모델 파라미터를 그룹화하고 ‘layer-wise’ LR 감쇠를 적용할 수 있도록 하며, LR 스케줄러에 lr scale을 추가합니다
- 많은 모델에 Gradient checkpointing 지원 추가
forward_head(x, pre_logits=False)모든 모델에 추가된 함수로,forward_features와forward_head를 별도로 호출할 수 있도록 합니다- 모든 vision transformer 및 vision MLP 모델은 CNN 모델과의 일관성을 위해
forward_features에서 풀링되지 않고 토큰 선택이 적용되지 않은 특징을 반환하도록 업데이트되었습니다. 토큰 선택 또는 풀링은 이제forward_head에서 적용됩니다.
2022년 2월 2일
- Chris Hughes는 어제 자신의 블로그에서
timm에 대한 포괄적인 실행 과정을 게시했습니다. 꼭 읽어볼 가치가 있습니다. PyTorch Image Models (timm) 시작하기: 실무자 가이드 - 현재
norm_norm_norm브랜치를 다음 주쯤 master(ver 0.6.x)로 병합할 준비를 하고 있습니다.- 변경 사항이 평소보다 광범위하며, 일부 모델 API 사용이 불안정해지거나 깨질 수 있습니다(완전한 하위 호환성을 목표로 함). 따라서
pip install git+https://github.com/rwightman/pytorch-image-models설치를 주의하세요! 0.5.x릴리스와0.5.x브랜치는 상황이 안정될 때까지 1~2건의 체리픽을 포함하여 안정적으로 유지됩니다. 안정성을 원하신다면 당분간 pypi 설치를 사용하는 것을 권장합니다.
- 변경 사항이 평소보다 광범위하며, 일부 모델 API 사용이 불안정해지거나 깨질 수 있습니다(완전한 하위 호환성을 목표로 함). 따라서
2022년 1월 14일
- Version 0.5.4 릴리스 버전이 pypi에 배포될 예정입니다. 마지막 pypi 업데이트 이후 상당한 시간이 경과했으며, 위험도가 높은 변경 사항들이 곧 main 브랜치에 병합될 예정입니다…
- 공식 구현(https://github.com/facebookresearch/ConvNeXt)의 가중치를 포함한 ConvNeXT 모델을 추가하고, 몇 가지 성능 최적화를 적용했으며, timm 기능과 호환됩니다
- 소규모(약 180만~300만 파라미터) / 모바일 최적화 모델 몇 가지를 학습해 보았는데, 몇몇은 지금까지 좋은 결과를 보이고 있으며 더 많은 결과가 나올 예정입니다…
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
- rsomani95가 추가한 TinyNet 모델
- MobileNetV3 아키텍처를 통해 LCNet 추가