Commit Graph

894 Commits (3386af8c8619b439557ac9823755c4b4462b24f1)

Author SHA1 Message Date
Ross Wightman 1c13ef7b46 Add default norm_eps=1e-5 for convnext_xxlarge, improve kwarg merging for all convnext models 2023-02-26 12:11:49 -08:00
Benjamin Bossan a5b01ec04e Add type annotations to _registry.py
Description

Add type annotations to _registry.py so that they will pass mypy
--strict.

Comment

I was reading the code and felt that this module would be easier to
understand with type annotations. Therefore, I went ahead and added the
annotations.

The idea with this PR is to start small to see if we can align on _how_
to annotate types. I've seen people in the past disagree on how strictly
to annotate the code base, so before spending too much time on this, I
wanted to check if you agree, Ross.

Most of the added types should be straightforward. Some notes on the
non-trivial changes:

- I made no assumption about the fn passed to register_model, but maybe
  the type could be stricter. Are all models nn.Modules?
- If I'm not mistaken, the type hint for get_arch_name was incorrect
- I had to add a # type: ignore to model.__all__ = ...
- I made some minor code changes to list_models to facilitate the
  typing. I think the changes should not affect the logic of the function.
- I removed list from list(sorted(...)) because sorted returns always a
  list.
2023-02-22 09:19:30 -08:00
Ross Wightman 4d9c3ae2fb Add laion2b 320x320 ConvNeXt-Large CLIP weights 2023-02-18 16:34:03 -08:00
Ross Wightman d0b45c9b4d Make safetensor import option for now. Improve avg/clean checkpoints ext handling a bit (more consistent). 2023-02-18 16:06:42 -08:00
Ross Wightman 947c1d757a Merge branch 'main' into focalnet_and_swin_refactor 2023-02-17 16:28:52 -08:00
Ross Wightman cf324ea38f Fix grad checkpointing in focalnet 2023-02-17 16:26:26 -08:00
Ross Wightman 848d200767 Overhaul FocalNet implementation 2023-02-17 16:24:59 -08:00
Ross Wightman 7266c5c716 Merge branch 'main' into focalnet_and_swin_refactor 2023-02-17 09:20:14 -08:00
Ross Wightman 7d9e321b76 Improve tracing of window attn models with simpler reshape logic 2023-02-17 07:59:06 -08:00
Ross Wightman 2e38d53dca Remove dead line 2023-02-16 16:57:42 -08:00
Ross Wightman f77c04ff36 Torchscript fixes/hacks for rms_norm, refactor ParallelScalingBlock with manual combination of input projections, closer paper match 2023-02-16 16:57:42 -08:00
Ross Wightman 122621daef Add Final annotation to attn_fas to avoid symbol lookup of new scaled_dot_product_attn fn on old PyTorch in jit 2023-02-16 16:57:42 -08:00
Ross Wightman 621e1b2182 Add ideas from 'Scaling ViT to 22-B Params', testing PyTorch 2.0 fused F.scaled_dot_product_attention impl in vit, vit_relpos, maxxvit / coatnet. 2023-02-16 16:57:42 -08:00
testbot a09d403c24 changed warning to info 2023-02-16 16:20:31 -08:00
testbot 8470e29541 Add support to load safetensors weights 2023-02-16 16:20:31 -08:00
Ross Wightman 624266148d Remove unused imports from _hub helpers 2023-02-09 17:47:26 -08:00
Ross Wightman 2cfff0581b Add grad_checkpointing support to features_only, test in EfficientDet. 2023-02-09 17:45:40 -08:00
Ross Wightman 9c14654a0d Improve support for custom dataset label name/description through HF hub export, via pretrained_cfg 2023-02-08 08:29:20 -08:00
Ross Wightman 0d33127df2 Add 384x384 convnext_large_mlp laion2b fine-tune on in1k 2023-02-06 22:01:04 -08:00
Ross Wightman 7a0bd095cb Update model prune loader to use pkgutil 2023-02-06 17:45:16 -08:00
Ross Wightman 13acac8c5e Update head metadata for effformerv2 2023-02-04 23:11:51 -08:00
Ross Wightman 8682528096 Add first conv metadata for efficientformer_v2 2023-02-04 23:02:02 -08:00
Ross Wightman 72fba669a8 is_scripting() guard on checkpoint_seq 2023-02-04 14:21:49 -08:00
Ross Wightman 95ec255f7f Finish timm mode api for efficientformer_v2, add grad checkpointing support to both efficientformers 2023-02-03 21:21:23 -08:00
Ross Wightman 9d03c6f526 Merge remote-tracking branch 'origin/main' into levit_efficientformer_redux 2023-02-03 14:47:01 -08:00
Ross Wightman 086bd55a94 Add EfficientFormer-V2, refactor EfficientFormer and Levit for more uniformity across the 3 related arch. Add features_out support to levit conv models and efficientformer_v2. All weights on hub. 2023-02-03 14:12:29 -08:00
Ross Wightman 2cb2699dc8 Apply fix from #1649 to main 2023-02-03 11:28:57 -08:00
Ross Wightman b3042081b4 Add laion -> in1k fine-tuned base and large_mlp weights for convnext 2023-02-03 10:58:02 -08:00
Ross Wightman 316bdf8955 Add mlp head support for convnext_large, add laion2b CLIP weights, prep fine-tuned weight tags 2023-02-01 08:27:02 -08:00
Ross Wightman 6f28b562c6 Factor NormMlpClassifierHead from MaxxViT and use across MaxxViT / ConvNeXt / DaViT, refactor some type hints & comments 2023-01-27 14:57:01 -08:00
Ross Wightman 9a53c3f727 Finalize DaViT, some formatting and modelling simplifications (separate PatchEmbed to Stem + Downsample, weights on HF hub. 2023-01-27 13:54:04 -08:00
Fredo Guan fb717056da Merge remote-tracking branch 'upstream/main' 2023-01-26 10:49:15 -08:00
Ross Wightman 64667bfa0e Add 'gigantic' vit clip variant for feature extraction and future fine-tuning 2023-01-25 18:02:10 -08:00
Ross Wightman 36989cfae4 Factor out readme generation in hub helper, add more readme fields 2023-01-20 14:49:40 -08:00
Ross Wightman 32f252381d Change order of checkpoitn filtering fn application in builder, try dict, model variant first 2023-01-20 14:48:54 -08:00
Ross Wightman bed350f5e5 Push all MaxxViT weights to HF hub, cleanup impl, add feature map extraction support and prompote to 'std' architecture. Fix norm head for proper embedding / feat map output. Add new in12k + ft 1k weights. 2023-01-20 14:45:25 -08:00
Ross Wightman ca38e1e73f Update ClassifierHead module, add reset() method, update in_chs -> in_features for consistency 2023-01-20 14:44:05 -08:00
Ross Wightman 8ab573cd26 Add convnext_tiny and convnext_small 384x384 fine-tunes of in12k weights, fix pool size for laion CLIP convnext weights 2023-01-20 14:40:16 -08:00
Fredo Guan 81ca323751
Davit update formatting and fix grad checkpointing (#7)
fixed head to gap->norm->fc as per convnext, along with option for norm->gap->fc
failed tests due to clip convnext models, davit tests passed
2023-01-15 14:34:56 -08:00
Ross Wightman e9aac412de Correct mean/std for CLIP convnexts 2023-01-14 22:53:56 -08:00
Ross Wightman 42bd8f7bcb Add convnext_base CLIP image tower weights for fine-tuning / features 2023-01-14 21:16:29 -08:00
Ross Wightman a2c14c2064 Add tiny/small in12k pretrained and fine-tuned ConvNeXt models 2023-01-11 14:50:39 -08:00
Ross Wightman 01fdf44438 Initial focalnet import, more refactoring needed for timm. 2023-01-09 16:18:19 -08:00
Ross Wightman 2e83bba142 Revert head norm changes to ConvNeXt as it broke some downstream use, alternate workaround for fcmae weights 2023-01-09 13:37:40 -08:00
Ross Wightman 1825b5e314 maxxvit type 2023-01-09 08:57:31 -08:00
Ross Wightman 5078b28f8a More kwarg handling tweaks, maxvit_base_rw def added 2023-01-09 08:57:31 -08:00
Ross Wightman c0d7388a1b Improving kwarg merging in more models 2023-01-09 08:57:31 -08:00
Ross Wightman 60ebb6cefa Re-order vit pretrained entries for more sensible default weights (no .tag specified) 2023-01-06 16:12:33 -08:00
Ross Wightman e861b74cf8 Pass through --model-kwargs (and --opt-kwargs for train) from command line through to model __init__. Update some models to improve arg overlay. Cleanup along the way. 2023-01-06 16:12:33 -08:00
Ross Wightman add3fb864e Working on improved model card template for push_to_hf_hub 2023-01-06 16:12:33 -08:00
Ross Wightman 6e5553da5f
Add ConvNeXt-V2 support (model additions and weights) (#1614)
* Add ConvNeXt-V2 support (model additions and weights)

* ConvNeXt-V2 weights on HF Hub, tweaking some tests

* Update README, fixing convnextv2 tests
2023-01-05 07:53:32 -08:00
Ross Wightman 6902c48a5f Fix ResNet based models to work w/ norm layers w/o affine params. Reformat long arg lists into vertical form. 2022-12-29 16:32:26 -08:00
Ross Wightman 8ece53e194 Switch BEiT to HF hub weights 2022-12-22 21:43:04 -08:00
Ross Wightman 9a51e4ea2e Add FlexiViT models and weights, refactoring, push more weights
* push all vision_transformer*.py weights to HF hub
* finalize more pretrained tags for pushed weights
* refactor pos_embed files and module locations, move some pos embed modules to layers
* tweak hf hub helpers to aid bulk uploading and updating
2022-12-22 17:23:09 -08:00
Fredo Guan 10b3f696b4
Davit std (#6)
Separate patch_embed module
2022-12-16 21:50:28 -08:00
Ross Wightman 656e1776de Convert mobilenetv3 to multi-weight, tweak PretrainedCfg metadata 2022-12-16 09:29:13 -08:00
Ross Wightman 6a01101905 Update efficientnet.py and convnext.py to multi-weight, add ImageNet-12k pretrained EfficientNet-B5 and ConvNeXt-Nano. 2022-12-14 20:33:23 -08:00
Fredo Guan 84178fca60
Merge branch 'rwightman:main' into main 2022-12-12 23:13:58 -08:00
Fredo Guan c43340ddd4
Davit std (#5)
* Update davit.py

* Update test_models.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* starting point

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update test_models.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Davit revised (#4)

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

clean up

* Update test_models.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update davit.py

* Update test_models.py

* Update davit.py
2022-12-11 03:03:22 -08:00
Ross Wightman d5e7d6b27e Merge remote-tracking branch 'origin/main' into refactor-imports 2022-12-09 14:49:44 -08:00
Ross Wightman cda39b35bd Add a deprecation phase to module re-org 2022-12-09 14:39:45 -08:00
Fredo Guan edea013dd1
Davit std (#3)
Davit with all features working
2022-12-09 02:53:21 -08:00
Ross Wightman 7c4ed4d5a4 Add EVA-large models 2022-12-08 16:21:30 -08:00
Fredo Guan 434a03937d
Merge branch 'rwightman:main' into main 2022-12-08 08:05:16 -08:00
Ross Wightman 98047ef5e3 Add EVA FT results, hopefully fix BEiT test failures 2022-12-07 08:54:06 -08:00
Ross Wightman 3cc4d7a894 Fix missing register for 224 eva model 2022-12-07 08:54:06 -08:00
Ross Wightman eba07b0de7 Add eva models to beit.py 2022-12-07 08:54:06 -08:00
Fredo Guan 3bd96609c8
Davit (#1)
Implement the davit model from https://arxiv.org/abs/2204.03645 and https://github.com/dingmyu/davit
2022-12-06 17:19:25 -08:00
Ross Wightman 927f031293 Major module / path restructure, timm.models.layers -> timm.layers, add _ prefix to all non model modules in timm.models 2022-12-06 15:00:06 -08:00
Ross Wightman 3785c234d7 Remove clip vit models that won't be ft and comment two that aren't uploaded yet 2022-12-05 10:21:34 -08:00
Ross Wightman 755570e2d6 Rename _pretrained.py -> pretrained.py, not feasible to change the other files to same scheme without breaking uses 2022-12-05 10:21:34 -08:00
Ross Wightman 72cfa57761 Add ported Tensorflow MaxVit weights. Add a few more CLIP ViT fine-tunes. Tweak some model tag names. Improve model tag name sorting. Update HF hub push config layout. 2022-12-05 10:21:34 -08:00
Ross Wightman 4d5c395160 MaxVit, ViT, ConvNeXt, and EfficientNet-v2 updates
* Add support for TF weights and modelling specifics to MaxVit (testing ported weights)
* More fine-tuned CLIP ViT configs
* ConvNeXt and MaxVit updated to new pretrained cfgs use
* EfficientNetV2, MaxVit and ConvNeXt high res models use squash crop/resize
2022-12-05 10:21:34 -08:00
Ross Wightman 9da7e3a799 Add crop_mode for pretraind config / image transforms. Add support for dynamo compilation to benchmark/train/validate 2022-12-05 10:21:34 -08:00
Ross Wightman b2b6285af7 Add two more FT clip weights 2022-12-05 10:21:34 -08:00
Ross Wightman 5895056dc4 Add openai b32 ft 2022-12-05 10:21:34 -08:00
Ross Wightman 9dea5143d5 Adding more clip ft variants 2022-12-05 10:21:34 -08:00
Ross Wightman 444dcba4ad CLIP B16 12k weights added 2022-12-05 10:21:34 -08:00
Ross Wightman dff4717cbf Add clip b16 384x384 finetunes 2022-12-05 10:21:34 -08:00
Ross Wightman 883fa2eeaa Add fine-tuned B/16 224x224 in1k clip models 2022-12-05 10:21:34 -08:00
Ross Wightman 9a3d2ac2d5 Add latest CLIP ViT fine-tune pretrained configs / model entrypt updates 2022-12-05 10:21:34 -08:00
Ross Wightman 42bbbddee9 Add missing model config 2022-12-05 10:21:34 -08:00
Ross Wightman def68befa7 Updating vit model defs for mult-weight support trial (vit first). Prepping for CLIP (laion2b and openai) fine-tuned weights. 2022-12-05 10:21:34 -08:00
Ross Wightman 0dadb4a6e9 Initial multi-weight support, handled so old pretraing config handling co-exists with new tags. 2022-12-05 10:21:34 -08:00
Wauplin 9b114754db refactor push_to_hub helper 2022-11-16 12:03:34 +01:00
Wauplin ae0a0db7de Create repo before cloning with Repository.clone_from 2022-11-15 15:17:20 +01:00
Ross Wightman 803254bb40 Fix spacing misalignment for fast norm path in LayerNorm modules 2022-10-24 21:43:49 -07:00
Ross Wightman 6635bc3f7d
Merge pull request #1479 from rwightman/script_cleanup
Train / val script enhancements, non-GPU (ie CPU) device support, HF datasets support, TFDS/WDS dataloading improvements
2022-10-15 09:29:39 -07:00
Ross Wightman 0e6023f032
Merge pull request #1381 from ChristophReich1996/master
Fix typo in PositionalEncodingFourier
2022-10-14 18:34:33 -07:00
Ross Wightman 66f4af7090 Merge remote-tracking branch 'origin/master' into script_cleanup 2022-10-14 15:54:00 -07:00
Ross Wightman 9914f744dc Add more maxxvit weights includ ConvNeXt conv block based experiments. 2022-10-10 21:49:18 -07:00
Mohamed Rashad 8fda68aff6
Fix repo id bug
This to fix this issue #1482
2022-10-05 16:26:06 +02:00
Ross Wightman 1199c5a1a4 clip_laion2b models need 1e-5 eps for LayerNorm 2022-09-25 10:36:54 -07:00
Ross Wightman e858912e0c Add brute-force checkpoint remapping option 2022-09-23 16:07:03 -07:00
Ross Wightman b293dfa595 Add CL SE module 2022-09-23 16:06:09 -07:00
Ross Wightman a383ef99f5 Make huggingface_hub necessary if it's the only source for a pretrained weight 2022-09-23 13:54:21 -07:00
Ross Wightman e069249a2d Add hf hub entries for laion2b clip models, add huggingface_hub dependency, update some setup/reqs, torch >= 1.7 2022-09-16 21:39:05 -07:00
Ross Wightman 9d65557be3 Fix errant import 2022-09-15 17:47:23 -07:00
Ross Wightman 9709dbaaa9 Adding support for fine-tune CLIP LAION-2B image tower weights for B/32, L/14, H/14 and g/14. Still WIP 2022-09-15 17:25:59 -07:00
Ross Wightman a520da9b49 Update tresnet features_info for v2 2022-09-13 20:54:54 -07:00