새로운 소식
소개
모델
특징
결과
시작하기(문서)
훈련, 검증, 추론 스크립트
멋진 PyTorch 리소스
라이센스
인용
Cuda 특정 호출을 피하기 위해 토치 앰프 사용을 정리하고 MengqingCao의 Ascend(NPU) 장치에 대한 지원을 병합합니다. 이 장치는 이제 새로운 장치 확장 자동 로딩 기능이 포함된 PyTorch 2.5에서 작동합니다. Pytorch 2.5에서도 Intel Arc(XPU)를 테스트했으며 (대부분) 작동했습니다.
더 이상 사용되지 않는 경로 timm.models.registry
에서 가져올 때 발생하는 오류 수정, 기존 사용 중단 경고의 우선순위가 표시되도록 높임
vit_intern300m_patch14_448
로 timm
에 대한 InternViT-300M(https://huggingface.co/OpenGVLab/InternViT-300M-448px)의 포트 가중치
요청에 의해 추가된 18/18d/34/34d ResNet 모델 정의의 사전 활성화(ResNetV2) 버전(가중치 보류 중)
릴리스 1.0.10
MambaOut (https://github.com/yuweihao/MambaOut) 모델 및 가중치가 추가되었습니다. SSM이 없는 SSM 비전 모델(본질적으로 게이팅이 있는 ConvNeXt)에 대한 건방진 해석입니다. 원래 가중치 + 사용자 정의 변형 및 가중치의 혼합입니다.
모델 | img_size | 탑1 | 탑5 | param_count |
---|---|---|---|---|
mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1k | 384 | 87.506 | 98.428 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 288 | 86.912 | 98.236 | 101.66 |
mambaout_base_plus_rw.sw_e150_in12k_ft_in1k | 224 | 86.632 | 98.156 | 101.66 |
mambaout_base_tall_rw.sw_e500_in1k | 288 | 84.974 | 97.332 | 86.48 |
mambaout_base_wide_rw.sw_e500_in1k | 288 | 84.962 | 97.208 | 94.45 |
mambaout_base_short_rw.sw_e500_in1k | 288 | 84.832 | 97.27 | 88.83 |
mambaout_base.in1k | 288 | 84.72 | 96.93 | 84.81 |
mambaout_small_rw.sw_e450_in1k | 288 | 84,598 | 97.098 | 48.5 |
mambaout_small.in1k | 288 | 84.5 | 96.974 | 48.49 |
mambaout_base_wide_rw.sw_e500_in1k | 224 | 84.454 | 96.864 | 94.45 |
mambaout_base_tall_rw.sw_e500_in1k | 224 | 84.434 | 96.958 | 86.48 |
mambaout_base_short_rw.sw_e500_in1k | 224 | 84.362 | 96.952 | 88.83 |
mambaout_base.in1k | 224 | 84.168 | 96.68 | 84.81 |
mambaout_small.in1k | 224 | 84.086 | 96.63 | 48.49 |
mambaout_small_rw.sw_e450_in1k | 224 | 84.024 | 96.752 | 48.5 |
mambaout_tiny.in1k | 288 | 83.448 | 96.538 | 26시 55분 |
mambaout_tiny.in1k | 224 | 82.736 | 96.1 | 26시 55분 |
mambaout_kobe.in1k | 288 | 81.054 | 95.718 | 9.14 |
mambaout_kobe.in1k | 224 | 79.986 | 94.986 | 9.14 |
mambaout_femto.in1k | 288 | 79.848 | 95.14 | 7.3 |
mambaout_femto.in1k | 224 | 78.87 | 94.408 | 7.3 |
SigLIP SO400M ViT는 ImageNet-1k @ 378x378에서 미세 조정하고 기존 SigLIP 384x384 모델에 378x378 옵션을 추가했습니다.
vit_so400m_patch14_siglip_378.webli_ft_in1k - 89.42 top-1
vit_so400m_patch14_siglip_gap_378.webli_ft_in1k - 89.03
최근 다국어(i18n) 변형인 patch16 @ 256x256(https://huggingface.co/timm/ViT-SO400M-16-SigLIP-i18n-256)의 SigLIP SO400M ViT 인코더. OpenCLIP 업데이트가 보류 중입니다.
두 개의 ConvNeXt 'Zepto' 모델 및 가중치를 추가합니다(하나는 겹쳐진 스템이 있고 다른 하나는 패치 스템이 있음). 이전 'Atto'보다 작은 2.2M 매개변수인 RMSNorm을 사용합니다.
connext_zepto_rms_ols.ra4_e3600_r224_in1k - 73.20 top-1 @ 224
connext_zepto_rms.ra4_e3600_r224_in1k - 72.81 @ 224
향상된 단위 테스트 및 틈새 저자원 애플리케이션을 위한 작은 테스트 모델 모음을 추가합니다(https://huggingface.co/blog/rwightman/timm-tiny-test).
MobileNetV4-Conv-Small(0.5x) 모델 추가(https://huggingface.co/posts/rwightman/793053396198664)
mobilenetv4_conv_small_050.e3000_r224_in1k - 65.81 상위 1 @ 256, 64.76 @ 224
MNV4 Small 레시피로 학습된 MobileNetV3-Large 변형 추가
mobilenetv3_large_150d.ra4_e3600_r256_in1k - 81.81 @ 320, 80.94 @ 256
mobilenetv3_large_100.ra4_e3600_r224_in1k - 77.16 @ 256, 76.31 @ 224
ImageNet-12k에서 훈련되고 ImageNet-1k에서 미세 조정된 업데이트된 SBB ViT 모델로 훨씬 더 크고 느린 여러 모델에 도전
모델 | 탑1 | 탑5 | 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 기준 챌린지 레시피 포함)
모델 | 탑1 | 탑5 | param_count | img_size |
---|---|---|---|---|
resnet50d.ra4_e3600_r224_in1k | 81.838 | 95.922 | 25.58 | 288 |
효율적인net_b1.ra4_e3600_r240_in1k | 81.440 | 95.700 | 7.79 | 288 |
resnet50d.ra4_e3600_r224_in1k | 80.952 | 95.384 | 25.58 | 224 |
효율적인net_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에 포함되고 1k에 미세 조정된 abswin pos로 훈련된 Hiera 작은 가중치 추가
모델 | 탑1 | 탑5 | 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 |
RDNet 추가('DenseNets Reloaded', https://arxiv.org/abs/2403.19588), 김동현님 감사합니다
ra4
mnv4-small 기반 레시피를 사용하여 mobilenet_edgetpu_v2_m
가중치를 추가합니다. 80.1% 상위 1위 @ 224 및 80.7 @ 256.
릴리스 1.0.8
더 많은 MobileNet-v4 가중치, 미세 조정이 포함된 ImageNet-12k 사전 학습 및 앤티앨리어싱된 ConvLarge 모델
모델 | 탑1 | top1_err | 탑5 | 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)
모델 | 탑1 | top1_err | 탑5 | top5_err | param_count | img_size |
---|---|---|---|---|---|---|
효율적인net_b0.ra4_e3600_r224_in1k | 79.364 | 20.636 | 94.754 | 5.246 | 5.29 | 256 |
효율적인net_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 |
모델 생성 후 이미지 크기, 패치 크기, 창 크기를 변경할 수 있도록 vit 및 swin v1/v2 모델에 set_input_size()
프로토타입이 추가되었습니다.
다양한 크기 처리를 위한 swin의 향상된 지원, set_input_size
외에도 always_partition
및 strict_img_size
인수가 __init__
에 추가되어 보다 유연한 입력 크기 제약 조건을 허용합니다.
중간 'Getter' 기능 래퍼에 대한 순서가 잘못된 색인 정보를 수정하고 이에 대한 색인을 확인하거나 범위를 지정합니다.
ImageNet-1k에서 실제로 훈련된 테스트를 위해 여러 개의 tiny
< .5M 매개변수 모델을 추가합니다.
모델 | 탑1 | top1_err | 탑5 | top5_err | param_count | img_size | 자르기_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 토큰 초기화 문제를 수정했습니다. Promisery에게 감사드립니다.
기타 기타 수정 사항
MQA 가중치 초기화 체계가 다른 3개의 추가 MobileNetV4 하이브리드 가중치
모델 | 탑1 | top1_err | 탑5 | 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 가중치 로딩
MobileNetV4 모델 및 timm
훈련 가중치의 초기 세트가 추가되었습니다.
모델 | 탑1 | top1_err | 탑5 | top5_err | param_count | img_size |
---|---|---|---|---|---|---|
mobilenetv4_hybrid_large.e600_r384_in1k | 84.266 | 15.734 | 96.936 | 3.064 | 37.76 | 448 |
mobilenetv4_hybrid_large.e600_r384_in1k | 83.800 | 16.200 | 96.770 | 3.230 | 37.76 | 384 |
mobilenetv4_conv_large.e600_r384_in1k | 83.392 | 16.608 | 96.622 | 3.378 | 32.59 | 448 |
mobilenetv4_conv_large.e600_r384_in1k | 82.952 | 17.048 | 96.266 | 3.734 | 32.59 | 384 |
mobilenetv4_conv_large.e500_r256_in1k | 82.674 | 17.326 | 96.31 | 3.69 | 32.59 | 320 |
mobilenetv4_conv_large.e500_r256_in1k | 81.862 | 18.138 | 95.69 | 4.31 | 32.59 | 256 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 81.276 | 18.724 | 95.742 | 4.258 | 11.07 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 80.858 | 19.142 | 95.768 | 4.232 | 9.72 | 320 |
mobilenetv4_hybrid_medium.e500_r224_in1k | 80.442 | 19.558 | 95.38 | 4.62 | 11.07 | 224 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 80.142 | 19.858 | 95.298 | 4.702 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r256_in1k | 79.928 | 20.072 | 95.184 | 4.816 | 9.72 | 256 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.808 | 20.192 | 95.186 | 4.814 | 9.72 | 256 |
mobilenetv4_conv_blur_medium.e500_r224_in1k | 79.438 | 20.562 | 94.932 | 5.068 | 9.72 | 224 |
mobilenetv4_conv_medium.e500_r224_in1k | 79.094 | 20.906 | 94.77 | 5.23 | 9.72 | 224 |
mobilenetv4_conv_small.e2400_r224_in1k | 74.616 | 25.384 | 92.072 | 7,928 | 3.77 | 256 |
mobilenetv4_conv_small.e1200_r224_in1k | 74.292 | 25.708 | 92.116 | 7.884 | 3.77 | 256 |
mobilenetv4_conv_small.e2400_r224_in1k | 73.756 | 26.244 | 91.422 | 8.578 | 3.77 | 224 |
mobilenetv4_conv_small.e1200_r224_in1k | 73.454 | 26.546 | 91.34 | 8.66 | 3.77 | 224 |
Apple MobileCLIP(https://arxiv.org/pdf/2311.17049, FastViT 및 ViT-B) 이미지 타워 모델 지원 및 가중치가 추가되었습니다(OpenCLIP 지원의 일부).
ViTamin (https://arxiv.org/abs/2404.02132) CLIP 이미지 타워 모델 및 가중치가 추가되었습니다(OpenCLIP 지원의 일부).
OpenAI CLIP 수정된 ResNet 이미지 타워 모델링 및 가중치 지원(ByobNet을 통해) AttentionPool2d를 리팩터링합니다.
평균 풀링을 사용하여 PaliGemma jax 가중치를 SigLIP ViT 모델에 로드하는 것을 지원합니다.
Meta(https://github.com/facebookresearch/hiera)에서 Hiera 모델을 추가합니다.
transorm에 대해 normalize=
플래그를 추가하고, 정규화되지 않은 torch.Tensor를 원래 dytpe로 반환합니다( chug
의 경우).
버전 1.0.3 릴리스
Searching for Better ViT Baselines (For the GPU Poor)
가중치 및 vit 변형이 출시되었습니다. Tiny와 Base 사이의 모델 형태를 탐색합니다.
모델 | 탑1 | 탑5 | 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 | 해당 없음 | 해당 없음 | 64.11 | 256 |
vit_betwixt_patch16_reg4_gap_256.sbb_in12k | 해당 없음 | 해당 없음 | 60.4 | 256 |
timm
모델에서 주의 지도를 추출하기 위해 AttentionExtract 도우미가 추가되었습니다. #1232(주석)의 예를 참조하세요.
forward_intermediates()
API는 다른 추출 방법이 있는 일부 ConvNet을 포함하여 더 많은 모델에 개선되고 추가되었습니다.
1047개 모델 아키텍처 중 1017개는 features_only=True
기능 추출을 지원합니다. 나머지 34개 아키텍처는 지원될 수 있지만 우선순위 요청을 기반으로 합니다.
이전 JIT 활성화를 포함하여 torch.jit.script 주석이 달린 함수를 제거합니다. 발전기와 발전기와의 충돌은 사용될 때 훨씬 더 나은 작업을 수행합니다.
오랫동안 지연된 1.0 릴리스를 준비하면서 한동안은 상황이 안정적이었습니다.
한동안 누락된 중요한 기능인 features_only=True
지원(지금까지 'vit_*', 'twins_*', 'deit*', 'beit*', 'mvitv2*', 'eva*', 'samvit_*', 'flexivit*'
)
위의 기능 지원은 기능 래핑 모듈이나 직접 사용할 수 있는 새로운 forward_intermediates()
API를 통해 달성됩니다.
모델 = timm.create_model('vit_base_patch16_224')final_feat, 중간체 = model.forward_intermediates(입력) 출력 = model.forward_head(final_feat) # 풀링 + 분류기 headprint(final_feat.shape)torch.Size([2, 197, 768])for f in 중간체: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])토치.크기([2, 768, 14, 14])토치.크기([2, 768, 14, 14])토치.크기([2, 768, 14, 14])토치.크기([2, 768, 14, 14])토치.크기([2, 768, 14, 14])토치.크기([2, 768, 14, 14])토치.크기([ 2, 768, 14, 14])print(output.shape)torch.Size([2, 1000])
모델 = timm.create_model('eva02_base_patch16_clip_224', pretrained=True, img_size=512, feature_only=True, out_indices=(-3, -2,))output = model(torch.randn(2, 3, 512, 512)) 출력에서 o의 경우: print(o.shape) 토치.크기([2, 768, 32, 32])토치.크기([2, 768, 32, 32])
TinyCLIP 비전 타워 무게가 추가되었습니다. 감사합니다 Thien Tran
Next-ViT 모델이 추가되었습니다. https://github.com/bytedance/Next-ViT에서 발췌
HGNet 및 PP-HGNetV2 모델이 추가되었습니다. SeeFun의 https://github.com/PaddlePaddle/PaddleClas에서 수정됨
setup.py를 제거하고 PDM에서 지원하는 pyproject.toml 기반 빌드로 이동했습니다.
오버헤드를 줄이기 위해 _for_each를 사용하여 업데이트된 모델 EMA impl을 추가하세요.
GPU가 아닌 장치에 대한 학습 스크립트의 장치 인수 지원
기타 기타 수정 사항 및 작은 추가 사항
최소 지원 Python 버전이 3.8로 증가했습니다.
릴리스 0.9.16
데이터 세트 및 변환 리팩토링
HuggingFace 스트리밍(반복 가능) 데이터세트 지원( --dataset hfids:org/dataset
)
향상된 분할 정보 가져오기를 위한 웹 데이터 세트 래퍼 조정, 지원되는 HF 허브 웹 데이터 세트에서 자동으로 분할을 가져올 수 있음
https://huggingface.co/timm에 최근 timm
ImageNet 업로드를 통해 HF 허브에서 스트리밍되는 HF datasets
및 웹 데이터 세트 래퍼를 테스트했습니다.
데이터 세트 전체에서 입력 및 대상 열/필드 키를 일관되게 만들고 인수를 통해 전달합니다.
예: --input-size 1 224 224
또는 --in-chans 1
사용 시 전체 흑백 지원, 데이터 세트에서 PIL 이미지 변환을 적절하게 설정
PixParse 문서 AI 프로젝트에서 사용할 수 있도록 여러 가지 대체 자르기 및 크기 조정 변환(ResizeKeepRatio, RandomCropOrPad 등)이 개선되었습니다.
회색조 및 가우스 흐림 옵션과 함께 SimCLR 스타일 색상 지터 문제를 증강 및 인수에 추가합니다.
열차 스크립트에서 검증 세트( --val-split ''
) 없이 열차 허용
훈련을 위해 --bce-sum
(클래스 희미한 합계) 및 --bce-pos-weight
(양수 가중치) 인수를 추가합니다. 이는 일반적인 BCE 손실 조정이므로 종종 하드 코딩했습니다.
SeeFun 덕분에 EfficientViT-Large 모델이 추가되었습니다.
Python 3.7 호환성 수정, 곧 지원 중단 예정
기타 기타 수정 사항
릴리스 0.9.12
model_args
구성 항목을 통해 Hugging Face Hub 기반 timm 모델에 상당한 유연성이 추가되었습니다. model_args
생성 시 모델에 kwargs로 전달됩니다.
https://huggingface.co/gaunernst/vit_base_patch16_1024_128.audiomae_as2m_ft_as20k/blob/main/config.json의 예를 참조하세요.
사용법: #2035
최신 모델로 업데이트된 imagenet 평가 및 테스트 세트 csv 파일
vision_transformer.py
입력 및 문서 정리(Laureempt)
0.9.11 릴리스
DFN(데이터 필터링 네트워크) 및 MetaCLIP ViT 가중치 추가
DINOv2 '등록' ViT 모델 가중치 추가됨 (https://huggingface.co/papers/2309.16588, https://huggingface.co/papers/2304.07193)
OpenAI, DFN, MetaCLIP 가중치를 사용하는 quickgelu
ViT 변형 추가(덜 효율적)
Aryan 덕분에 ResNet, MobileNet-v3에 향상된 입력 기능이 추가되었습니다.
ImageNet-12k 미세 convnext_xxlarge
(LAION-2B CLIP에서)
0.9.9 릴리스
vision_transformer.py
에서 SigLIP 이미지 타워 가중치가 지원됩니다.
미세 조정 및 다운스트림 기능 사용에 대한 큰 잠재력.
Vision Transformers에 따라 vit 모델에서 실험적인 '레지스터' 지원 레지스터 필요
새로운 웨이트 릴리스로 RepViT를 업데이트했습니다. 고마워요 왕가오
Swin 모델에 패치 크기 조정 지원(사전 학습된 가중치 로드 시) 추가
0.9.8 릴리스 보류 중
TinyViT 추가로 SeeFun
torch.autocast를 사용하여 PT 1.10으로 다시 작동하도록 EfficientViT(MIT)를 수정했습니다.
0.9.7 릴리스
Py T orch 이미지 모델 ( timm
)은 다양한 SOTA 모델을 통합하는 것을 목표로 하는 이미지 모델, 레이어, 유틸리티, 최적화 프로그램, 스케줄러, 데이터 로더/증강 및 참조 교육/검증 스크립트 모음입니다. ImageNet 훈련 결과를 재현합니다.
다른 많은 사람들의 작업이 여기에 있습니다. 나는 README, 문서 및 코드 독스트링의 github, arxiv 논문 등에 대한 링크를 통해 모든 소스 자료가 인정되도록 노력했습니다. 내가 놓친 것이 있으면 알려주세요.
모든 모델 아키텍처 계열에는 사전 학습된 가중치가 있는 변형이 포함되어 있습니다. 가중치가 없는 특정 모델 변형이 있으며 이는 버그가 아닙니다. 새로운 웨이트 트레이닝이나 더 나은 웨이트 트레이닝에 도움을 주시면 감사하겠습니다.
중첩된 변환기 집계 - https://arxiv.org/abs/2105.12723
BEiT - https://arxiv.org/abs/2106.08254
빅 전송 ResNetV2 (BiT) - https://arxiv.org/abs/1912.11370
병목 현상 변환기 - https://arxiv.org/abs/2101.11605
CaiT(이미지 변환기의 Class-Attention) - https://arxiv.org/abs/2103.17239
CoaT(Co-Scale Conv-Attentional Image Transformers) - https://arxiv.org/abs/2104.06399
CoAtNet(컨볼루션 및 주의) - https://arxiv.org/abs/2106.04803
ConvNeXt - https://arxiv.org/abs/2201.03545
ConvNeXt-V2 - http://arxiv.org/abs/2301.00808
ConViT(소프트 컨볼루셔널 유도 바이어스 비전 트랜스포머)- https://arxiv.org/abs/2103.10697
CspNet(교차 단계 부분 네트워크) - https://arxiv.org/abs/1911.11929
DeiT - https://arxiv.org/abs/2012.12877
DeiT-III - https://arxiv.org/pdf/2204.07118.pdf
DenseNet - https://arxiv.org/abs/1608.06993
DLA - https://arxiv.org/abs/1707.06484
DPN(이중 경로 네트워크) - https://arxiv.org/abs/1707.01629
EdgeNeXt - https://arxiv.org/abs/2206.10589
EfficientFormer - https://arxiv.org/abs/2206.01191
EfficientNet(MBConvNet 제품군)
EfficientNet NoisyStudent(B0-B7, L2) - https://arxiv.org/abs/1911.04252
EfficientNet AdvProp(B0-B8) - https://arxiv.org/abs/1911.09665
EfficientNet(B0-B7) - https://arxiv.org/abs/1905.11946
EfficientNet-EdgeTPU(S, M, L) - https://ai.googleblog.com/2019/08/efficientnet-edgetpu-creating.html
EfficientNet V2 - https://arxiv.org/abs/2104.00298
FBNet-C - https://arxiv.org/abs/1812.03443
믹스넷 - https://arxiv.org/abs/1907.09595
MNASNet B1, A1(Squeeze-Excite) 및 소형 - https://arxiv.org/abs/1807.11626
MobileNet-V2 - https://arxiv.org/abs/1801.04381
단일 경로 NAS - https://arxiv.org/abs/1904.02877
TinyNet - https://arxiv.org/abs/2010.14819
EfficientViT(MIT) - https://arxiv.org/abs/2205.14756
EfficientViT(MSRA) - https://arxiv.org/abs/2305.07027
EVA - https://arxiv.org/abs/2211.07636
EVA-02 - https://arxiv.org/abs/2303.11331
FastViT - https://arxiv.org/abs/2303.14189
FlexiViT - https://arxiv.org/abs/2212.08013
FocalNet(초점 변조 네트워크) - https://arxiv.org/abs/2203.11926
GCViT(글로벌 컨텍스트 비전 변환기) - https://arxiv.org/abs/2206.09959
고스트넷 - https://arxiv.org/abs/1911.11907
GhostNet-V2 - https://arxiv.org/abs/2211.12905
gMLP - https://arxiv.org/abs/2105.08050
GPU 효율적인 네트워크 - https://arxiv.org/abs/2006.14090
헤일로 네트 - https://arxiv.org/abs/2103.12731
HGNet / HGNet-V2 - 미정
HRNet - https://arxiv.org/abs/1908.07919
InceptionNeXt - https://arxiv.org/abs/2303.16900
인셉션-V3 - https://arxiv.org/abs/1512.00567
Inception-ResNet-V2 및 Inception-V4 - https://arxiv.org/abs/1602.07261
람다 네트워크 - https://arxiv.org/abs/2102.08602
LeViT(ConvNet 의류의 비전 트랜스포머) - https://arxiv.org/abs/2104.01136
MaxViT(다축 비전 변환기) - https://arxiv.org/abs/2204.01697
MetaFormer(PoolFormer-v2, ConvFormer, CAFormer) - https://arxiv.org/abs/2210.13452
MLP-믹서 - https://arxiv.org/abs/2105.01601
모바일CLIP - https://arxiv.org/abs/2311.17049
MobileNet-V3(효율적인 헤드가 있는 MBConvNet) - https://arxiv.org/abs/1905.02244
FBNet-V3 - https://arxiv.org/abs/2006.02049
HardCoRe-NAS - https://arxiv.org/abs/2102.11646
LCNet - https://arxiv.org/abs/2109.15099
MobileNetV4 - https://arxiv.org/abs/2404.10518
모바일원 - https://arxiv.org/abs/2206.04040
MobileViT - https://arxiv.org/abs/2110.02178
MobileViT-V2 - https://arxiv.org/abs/2206.02680
MViT-V2(향상된 멀티스케일 비전 변환기) - https://arxiv.org/abs/2112.01526
NASNet-A - https://arxiv.org/abs/1707.07012
NesT - https://arxiv.org/abs/2105.12723
Next-ViT - https://arxiv.org/abs/2207.05501
NFNet-F - https://arxiv.org/abs/2102.06171
NF-RegNet / NF-ResNet - https://arxiv.org/abs/2101.08692
PNasNet - https://arxiv.org/abs/1712.00559
PoolFormer (MetaFormer) - https://arxiv.org/abs/2111.11418
풀링 기반 Vision Transformer(PiT) - https://arxiv.org/abs/2103.16302
PVT-V2(향상된 피라미드 비전 변환기) - https://arxiv.org/abs/2106.13797
RDNet(DenseNets 리로디드) - https://arxiv.org/abs/2403.19588
RegNet - https://arxiv.org/abs/2003.13678
RegNetZ - https://arxiv.org/abs/2103.06877
RepVGG - https://arxiv.org/abs/2101.03697
RepGhostNet - https://arxiv.org/abs/2211.06088
RepViT - https://arxiv.org/abs/2307.09283
ResMLP - https://arxiv.org/abs/2105.03404
ResNet/ResNeXt
ResNet(v1b/v1.5) - https://arxiv.org/abs/1512.03385
ResNeXt - https://arxiv.org/abs/1611.05431
'Bag of Tricks' / Gluon C, D, E, S 변형 - https://arxiv.org/abs/1812.01187
약한 감독(WSL) Instagram 사전 훈련/ImageNet 조정 ResNeXt101 - https://arxiv.org/abs/1805.00932
반 감독형(SSL) / 반약한 감독형(SWSL) ResNet/ResNeXts - https://arxiv.org/abs/1905.00546
ECA-Net(ECAResNet) - https://arxiv.org/abs/1910.03151v4
압착 및 자극 네트워크(SEResNet) - https://arxiv.org/abs/1709.01507
ResNet-RS - https://arxiv.org/abs/2103.07579
Res2Net - https://arxiv.org/abs/1904.01169
ResNeSt - https://arxiv.org/abs/2004.08955
ReXNet - https://arxiv.org/abs/2007.00992
셀렉SLS - https://arxiv.org/abs/1907.00837
선택적 커널 네트워크 - https://arxiv.org/abs/1903.06586
Sequencer2D - https://arxiv.org/abs/2205.01972
스윈 S3(AutoFormerV2) - https://arxiv.org/abs/2111.14725
스윈 트랜스포머 - https://arxiv.org/abs/2103.14030
스윈 트랜스포머 V2 - https://arxiv.org/abs/2111.09883
Transformer-iN-Transformer(TNT) - https://arxiv.org/abs/2103.00112
TResNet - https://arxiv.org/abs/2003.13630
Twins(비전 변환기의 공간적 주의) - https://arxiv.org/pdf/2104.13840.pdf
Visformer - https://arxiv.org/abs/2104.12533
비전 트랜스포머 - https://arxiv.org/abs/2010.11929
비타민 - https://arxiv.org/abs/2404.02132
VOLO(비전 아웃룩러) - https://arxiv.org/abs/2106.13112
VovNet V2 및 V1 - https://arxiv.org/abs/1911.06667
예외 - https://arxiv.org/abs/1610.02357
Xception(수정된 정렬, Gluon) - https://arxiv.org/abs/1802.02611
Xception(수정된 정렬, TF) - https://arxiv.org/abs/1802.02611
XCiT(교차공분산 이미지 변환기) - https://arxiv.org/abs/2106.09681
create_optimizer
/ create_optimizer_v2
팩토리 메소드를 통해 사용 가능한 최적화 프로그램이 포함되어 있습니다:
adabelief
https://github.com/juntang-zhuang/Adabelief-Optimizer - https://arxiv.org/abs/2010.07468에서 수정된 AdaBelief 구현입니다.
FAIRSeq impl에서 수정된 adafactor
- https://arxiv.org/abs/1804.04235
David Samuel의 adahessian
- https://arxiv.org/abs/2006.00719
Naver ClovAI의 adamp
및 sgdp
- https://arxiv.org/abs/2006.08217
adan
https://github.com/sail-sg/Adan - https://arxiv.org/abs/2208.06677에서 조정된 Adan 구현입니다.
lamb
XLA와 함께 사용을 지원하도록 정리 및 수정된 Lamb 및 LambC(trust-clipping 포함) 구현 - https://arxiv.org/abs/1904.00962
lars
LARS 및 LARC 구현(trust-clipping 포함) - https://arxiv.org/abs/1708.03888
lion
및 Lion 구현은 https://github.com/google/automl/tree/master/lion - https://arxiv.org/abs/2302.06675에서 조정되었습니다.
Liam이 impl에서 수정한 lookahead
- https://arxiv.org/abs/1907.08610
madgrad
- https://github.com/facebookresearch/madgrad - https://arxiv.org/abs/2101.11075에서 조정된 MADGRAD 구현
nadam
Nesterov 추진력을 갖춘 Adam의 구현입니다.
nadamw
Nesterov 추진력을 갖춘 AdamW(분리된 체중 감소가 있는 Adam)의 구현입니다. https://github.com/mlcommons/algorithmic-efficiency를 기반으로 한 단순화된 구현
기무라 마사시(Masashi Kimura)의 novograd
- https://arxiv.org/abs/1905.11286
Liyuan Liu의 radam
- https://arxiv.org/abs/1908.03265
rmsprop_tf
PyTorch RMSProp을 직접 적용한 것입니다. 훨씬 향상된 Tensorflow RMSProp 동작을 재현합니다.
sgdw
및 분리된 가중치 감쇠가 포함된 SGD 구현
NVIDIA Apex가 설치된 이름별 fused
최적화 프로그램
BitsAndBytes가 설치된 이름별 bits
이름> 최적화 프로그램
Zhun Zhong의 무작위 삭제 - https://arxiv.org/abs/1708.04896)
혼합 - https://arxiv.org/abs/1710.09412
컷믹스 - https://arxiv.org/abs/1905.04899
AutoAugment(https://arxiv.org/abs/1805.09501) 및 RandAugment(https://arxiv.org/abs/1909.13719) EfficientNet 교육을 위해 impl을 모델로 한 ImageNet 구성(https://github.com/tensorflow/tpu/ blob/master/models/official/efficientnet/autoaugment.py)
JSD 손실이 있는 AugMix, 정리 + 증강 혼합 지원이 있는 JSD는 AutoAugment 및 RandAugment에서도 작동합니다 - https://arxiv.org/abs/1912.02781
SplitBachNorm - 정리된 데이터와 강화된(보조 배치 표준) 데이터 간에 배치 표준 레이어를 분할할 수 있습니다.
DropPath(일명 "확률적 깊이") - https://arxiv.org/abs/1603.09382
DropBlock - https://arxiv.org/abs/1810.12890
블러 풀링 - https://arxiv.org/abs/1904.11486
내 프로젝트에서 자주 활용하는 몇 가지(덜 일반적인) 기능이 포함되어 있습니다. PIP를 통해 다른 모델을 사용하는 대신 나만의 모델 세트를 유지하는 이유는 다음과 같습니다.
모든 모델에는 공통 기본 구성 인터페이스와 API가 있습니다.
분류자 액세스/변경 - get_classifier
및 reset_classifier
기능에 대해서만 정방향 전달 수행 forward_features
(문서 참조)
이를 통해 모든 모델에서 작동하는 일관된 네트워크 래퍼를 쉽게 작성할 수 있습니다.
모든 모델은 create_model을 통해 다중 규모 기능 맵 추출(기능 피라미드)을 지원합니다(문서 참조).
create_model(name, features_only=True, out_indices=..., output_stride=...)
out_indices
생성 인수는 반환할 기능 맵을 지정합니다. 이러한 인덱스는 0을 기반으로 하며 일반적으로 C(i + 1)
기능 수준에 해당합니다.
output_stride
생성 arg는 확장된 컨볼루션을 사용하여 네트워크의 출력 스트라이드를 제어합니다. 대부분의 네트워크는 기본적으로 스트라이드 32입니다. 모든 네트워크가 이를 지원하는 것은 아닙니다.
기능 맵 채널 수, 축소 수준(스트라이드)은 .feature_info
멤버를 통해 모델 생성 후 쿼리할 수 있습니다.
모든 모델에는 필요한 경우 최종 선형을 조정하고 원하는 경우 3~1채널 입력을 적용하는 일관된 사전 훈련된 웨이트 로더가 있습니다.
여러 프로세스/GPU 모드에서 작동하는 고성능 참조 훈련, 검증 및 추론 스크립트:
프로세스당 단일 GPU가 있는 NVIDIA DDP, APEX가 있는 여러 프로세스(AMP 혼합 정밀도 옵션)
다중 GPU, 단일 프로세스가 있는 PyTorch DistributedDataParallel(AMP가 활성화되면 충돌이 발생하여 비활성화됨)
단일 GPU 단일 프로세스가 포함된 PyTorch(AMP 옵션)
모델 생성 시 평균 풀링, 최대 풀링, 평균 + 최대 또는 concat([평균, 최대]) 중에서 선택할 수 있는 동적 전역 풀 구현입니다. 모든 전역 풀링은 기본적으로 적응형 평균이며 사전 훈련된 가중치와 호환됩니다.
포함된 모델을 래핑할 수 있고 일반적으로 훈련 크기보다 큰 입력 이미지로 향상된 성능 추론을 제공하는 '테스트 시간 풀' 래퍼입니다. 이식할 때 원래 DPN 구현에서 아이디어를 적용했습니다(https://github.com/cypw/DPNs).
학습률 스케줄러
AllenNLP 스케줄러
FAIRseq lr_scheduler
SGDR: 웜 재시작을 사용한 확률적 경사하강법(https://arxiv.org/abs/1608.03983)
아이디어 채택
스케줄러에는 step
, 다시 시작 시 cosine
, 다시 시작 시 tanh
, plateau
포함됩니다.
mrT23의 Space-to-Depth(https://arxiv.org/abs/1801.04590) -- 원본 논문?
적응형 그라데이션 클리핑(https://arxiv.org/abs/2102.06171, https://github.com/deepmind/deepmind-research/tree/master/nfnets)
광범위한 채널 및/또는 공간 주의 모듈 선택:
병목 현상 변환기 - https://arxiv.org/abs/2101.11605
CBAM - https://arxiv.org/abs/1807.06521
효과적인 압착-여기(ESE) - https://arxiv.org/abs/1911.06667
ECA(효율적인 채널 주의) - https://arxiv.org/abs/1910.03151
Gather-Excite(GE) - https://arxiv.org/abs/1810.12348
글로벌 컨텍스트(GC) - https://arxiv.org/abs/1904.11492
헤일로 - https://arxiv.org/abs/2103.12731
혁명 - https://arxiv.org/abs/2103.06255
람다 레이어 - https://arxiv.org/abs/2102.08602
비로컬(NL) - https://arxiv.org/abs/1711.07971
압착 및 자극(SE) - https://arxiv.org/abs/1709.01507
선택적 커널(SK) - (https://arxiv.org/abs/1903.06586)
분할(SPLAT) - https://arxiv.org/abs/2004.08955
이동된 창(SWIN) - https://arxiv.org/abs/2103.14030
모델 검증 결과는 결과표에서 확인할 수 있습니다.
공식 문서는 https://huggingface.co/docs/hub/timm에서 확인할 수 있습니다. 문서 기여를 환영합니다.
PyTorch 이미지 모델 시작하기(timm): Chris Hughes가 작성한 실무자 가이드는 timm
의 여러 측면을 자세히 다루는 광범위한 블로그 게시물입니다.
timmdocs는 timm
에 대한 대체 문서 세트입니다. timmdocs를 만드는 데 노력한 Aman Arora에게 큰 감사를 드립니다.
paperswithcode는 timm
내에서 모델을 탐색하는 데 유용한 리소스입니다.
저장소의 루트 폴더에는 이 저장소에 포함된 모델 및 기타 기능과 함께 작동하는 참조 열차, 검증 및 추론 스크립트가 포함되어 있습니다. 약간의 해킹을 통해 다른 데이터 세트 및 사용 사례에 적용할 수 있습니다. 설명서를 참조하세요.
PyTorch의 가장 큰 자산 중 하나는 커뮤니티와 그들의 기여입니다. 여기에 있는 모델 및 구성 요소와 잘 어울리는 제가 가장 좋아하는 몇 가지 리소스가 아래에 나열되어 있습니다.
Detectron2 - https://github.com/facebookresearch/Detectron2
분할 모델(의미 체계) - https://github.com/qubvel/segmentation_models.pytorch
EfficientDet(Obj Det, 의미론 곧) - https://github.com/rwightman/efficientdet-pytorch
앨범 구성 - https://github.com/albumentations-team/albumentations
코르니아 - https://github.com/kornia/kornia
RepDistiller - https://github.com/HobbitLong/RepDistiller
torchdistill - https://github.com/yoshitomo-matsubara/torchdistill
PyTorch 측정 학습 - https://github.com/KevinMusgrave/pytorch-metric-learning
fastai - https://github.com/fastai/fastai
여기에 있는 코드는 Apache 2.0 라이센스입니다. 나는 포함되거나 조정된 모든 제3자 코드가 MIT, BSD 등과 같은 호환 가능한(허용적인) 라이센스를 가지고 있는지 확인하기 위해 주의를 기울였습니다. 나는 GPL/LGPL 충돌을 피하기 위해 노력했습니다. 즉, 여기의 라이선스와 종속 라이선스의 조건을 준수하는지 확인하는 것은 귀하의 책임입니다. 해당되는 경우, 독스트링의 다양한 구성 요소에 대한 소스/참조를 연결했습니다. 제가 놓친 것이 있다고 생각되면 문제를 만들어 주세요.
지금까지 여기에 사용 가능한 모든 사전 훈련된 가중치는 몇 가지 추가 사전 훈련이 있는 일부 선별된 가중치와 함께 ImageNet에서 사전 훈련되었습니다(아래 추가 참고 사항 참조). ImageNet은 비상업적 연구 목적으로만 출시되었습니다(https://image-net.org/download). 해당 데이터세트에서 사전 훈련된 가중치를 사용하는 것이 어떤 의미를 갖는지는 명확하지 않습니다. ImageNet으로 훈련한 모든 모델은 연구 목적으로 수행되었으며 원본 데이터 세트 라이센스가 가중치에 적용된다고 가정해야 합니다. 사전 훈련된 가중치를 상용 제품에 사용하려는 경우 법적 조언을 구하는 것이 가장 좋습니다.
여기에 포함된 여러 가중치 또는 참조는 내가 액세스할 수 없는 독점 데이터 세트로 사전 훈련되었습니다. 여기에는 Facebook WSL, SSL, SWSL ResNe(Xt) 및 Google Noisy Student EfficientNet 모델이 포함됩니다. Facebook 모델에는 명시적인 비상업적 라이센스(CC-BY-NC 4.0, https://github.com/facebookresearch/semi-supervised-ImageNet1K-models, https://github.com/facebookresearch/WSL-Images)가 있습니다. . Google 모델에는 Apache 2.0 라이센스(및 ImageNet 문제) 이외의 제한 사항이 없는 것으로 보입니다. 두 경우 모두 질문이 있으면 Facebook이나 Google에 문의해야 합니다.
@misc{rw2019timm, 작성자 = {Ross Wightman}, 제목 = {PyTorch Image Models}, 연도 = {2019}, 게시자 = {GitHub}, 저널 = {GitHub 저장소}, doi = {10.5281/zenodo.4414861}, Howpublished = {url{https://github.com/rwightman/pytorch-image-models}}}