Commit Graph

269 Commits (55f7dfa9ea8bab0296c774dd7234d602b8396ce5)

Author SHA1 Message Date
Ross Wightman 208e7912f7 Missed one of the abalation model entrypoints, update README 2020-05-12 13:36:31 -07:00
Ross Wightman 9cc289f18c Exclude EfficientNet-L2 models from test 2020-05-12 13:07:03 -07:00
Ross Wightman 2f884a0ce5 Add resnest14, resnest26, and two of the abalation grouped resnest50 models 2020-05-12 12:21:52 -07:00
Ross Wightman f4cdc2ac31 Add ResNeSt models 2020-05-11 23:27:09 -07:00
Ross Wightman 780860d140 Add norm_act factory method, move JIT of norm layers to factory 2020-05-09 22:09:21 -07:00
Ross Wightman 14edacdf9a DenseNet converted to support ABN (norm + act) modules. Experimenting with EvoNorm, IABN 2020-05-09 18:26:41 -07:00
Ross Wightman 022ed001f3 Update DenseNet to latest in Torchvision (torchscript compat, checkpointing, proper init). Start adding ehanced configurability, stem options... 2020-05-07 09:57:48 -07:00
Vyacheslav Shults a7ebe09029 Replace all None by nn.Identity() in all models reset_classifier when False-values num_classes is given.
Make small code refactoring
2020-05-06 09:54:03 +03:00
Vyacheslav Shults f0eb021620 Replace all None by nn.Identity() in HRNet modules 2020-05-05 21:09:35 +03:00
Ross Wightman 8d8677e03b Fix #139. Broken SKResNets after BlurPool addition, as a plus, SKResNets support AA now too. 2020-05-04 12:14:43 -07:00
AFLALO, Jonathan Isaac 9c15d57505 added efficientnet pruned weights 2020-05-03 09:29:45 +03:00
Ross Wightman ea300709f0 Fix model create fn not passing num_classes through. Fix #135 2020-05-01 18:37:03 -07:00
Ross Wightman 2c438c4e0d Merge branch 'master' of github.com:rwightman/pytorch-models 2020-05-01 17:03:17 -07:00
Ross Wightman 2681a8d618 Final blurpool2d cleanup and add resnetblur50 weights, match tresnet Downsample arg order to BlurPool2d for interop 2020-05-01 17:00:21 -07:00
Ross Wightman 9590f301a9 Merge branch 'blur' of https://github.com/VRandme/pytorch-image-models into VRandme-blur 2020-05-01 15:19:57 -07:00
Ross Wightman a5220ad3aa
Merge pull request #125 from Separius/patch-1
fix typo in eca
2020-05-01 15:11:56 -07:00
Ross Wightman 0834fbc01c Move pruned model adapt strings to separate txt files. A few minor formatting alignment tweaks. 2020-05-01 15:09:20 -07:00
Ross Wightman ba793f5c1c Merge branch 'adding_ECA_resnet' of https://github.com/yoniaflalo/pytorch-image-models into yoniaflalo-adding_ECA_resnet 2020-04-29 16:43:02 -07:00
AFLALO, Jonathan Isaac 07f19dd699 added eca resnet 2020-04-29 19:09:55 +03:00
Ross Wightman be7c784d21 Small TResNet simplification, just use SelectAdaptivePool, don't notice any perf difference 2020-04-27 17:50:19 -07:00
Ross Wightman e3a98171b2 Remove some CRLF that made it into TResNet merge 2020-04-27 13:23:41 -07:00
Ross Wightman 0004f37d25 Some TResNet cleanup.
* allow use of global pool arg, test-time-pooling
* clean checkpoints to just contain state dict, add 448 res checkpoints
* support DataParallel via lazy filter creation for JIT Downsample
* some minor formatting (mostly alignment) preferences
2020-04-27 13:21:05 -07:00
Sepehr Sameni 20290b5b56
fix typo in eca 2020-04-14 15:20:35 +04:30
Ross Wightman ebf82b84ac
Merge pull request #122 from mrT23/master
TResNet models
2020-04-12 18:23:46 -07:00
Alexey Chernov bdb165a8a4 Merge changes in feature extraction interface to MobileNetV3
Experimental feature extraction interface seems to be changed
a little bit with the most up to date version apparently found
in EfficientNet class. Here these changes are added to
MobileNetV3 class to make it support it and work again, too.
2020-04-13 02:02:14 +03:00
talrid 8a63c1add8 finalizing 2020-04-12 19:08:35 +03:00
talrid 6209146738 TResNet models 2020-04-12 18:44:12 +03:00
Ross Wightman 1a8f5900ab Update EfficientNet feature extraction for EfficientDet. Add needed MaxPoolSame as well. 2020-04-09 01:41:54 -07:00
Chris Ha 06a50a94a8 Fix minor typos in create_attn.py and resnet.py
'eca'->'ceca'
and
doest not-> does not
2020-04-07 21:15:57 +09:00
Ross Wightman 1a9ab07307 One too many changes at a time, fix missing C 2020-04-07 21:12:08 +09:00
Ross Wightman f17b42bc33 Blur filter no longer a buffer 2020-04-07 21:12:08 +09:00
Ross Wightman 6cdeca24a3 Some cleanup and fixes for initial BlurPool impl. Still some testing and tweaks to go... 2020-04-07 21:12:08 +09:00
Chris Ha acd1b6cccd Implement Functional Blur on resnet.py
1. add ResNet argument blur=''
2. implement blur for maxpool and strided convs in downsampling blocks
2020-04-07 21:12:08 +09:00
Chris Ha ce3d82b58b Update blurpool.py
clean up code for PR
2020-04-07 21:12:07 +09:00
Chris Ha 3a287a6e76 Create blurpool.py
Initial implementation of blur layer.
currently tests as correct against Downsample of original github
2020-04-07 21:12:07 +09:00
Ross Wightman c99a5abed4
Merge pull request #115 from rwightman/mobilenetv2-experiment
MobileNet-V2 experiments
2020-04-05 17:32:06 -07:00
Ross Wightman e34074b4da Add final weights for MobileNet-V2 experiments 2020-04-05 17:31:02 -07:00
Ross Wightman a6a5565de7 Fiddling... 2020-03-19 10:20:20 -07:00
Ross Wightman 5a16c533ff Add better resnext50_32x4d weights trained by andravin 2020-03-18 14:43:50 -07:00
Ross Wightman bc998cad91 Experimenting with some MobileNetV2 variations to compare against EfficientNet-Lite 2020-03-18 13:54:06 -07:00
Ross Wightman 3406e582cf Add EfficientNet-Lite results, update README 2020-03-18 13:12:30 -07:00
Ross Wightman bd05258f7b EfficientNet-Lite model added w/ converted checkpoints, validation in progress... 2020-03-17 23:31:45 -07:00
Ross Wightman 56e2ac3a6d
Merge pull request #94 from rwightman/lr_noise
Learning rate noise, MobileNetV3 weights, and activate MobileNetV3/EfficientNet weight init change
2020-02-29 20:41:05 -08:00
Ross Wightman c16f25ced2 Add MobileNetV3 Large weights, results, update README and sotabench for merge 2020-02-29 20:37:20 -08:00
Ross Wightman c60069c1eb Annotate types on drop fns to avoid torchscript error 2020-02-27 09:30:23 -08:00
Ross Wightman 9fee316752 Enable fixed fanout calc in EfficientNet/MobileNetV3 weight init by default. Fix #84 2020-02-24 15:11:26 -08:00
Ross Wightman 43225d110c Unify drop connect vs drop path under 'drop path' name, switch all EfficientNet/MobilenetV3 refs to 'drop_path'. Update factory to handle new drop args. 2020-02-18 14:00:26 -08:00
Ross Wightman f1d5f8a6c4 Update comments for Selective Kernel and DropBlock/Path impl, add skresnet34 weights 2020-02-18 13:58:30 -08:00
Ross Wightman 569419b38d Tweak some comments, add SKNet models with weights to sotabench, remove an unused branch 2020-02-15 21:18:25 -08:00
Ross Wightman 53c47479c4 Batch validation batch size adjustment, tweak L2 crop pct 2020-02-15 20:37:04 -08:00
Ross Wightman 08553e16b3 Merge branch 'master' into attention 2020-02-14 18:24:21 -08:00
Ross Wightman fa38f24967 Update SK network configs, add weights for skresnet8 and skresnext50 2020-02-14 15:37:00 -08:00
Ross Wightman ba15ca47e8 Add ported EfficientNet-L2, B0-B7 NoisyStudent weights from TF TPU 2020-02-12 11:26:38 -08:00
Ross Wightman 5e6dbbaf30 Add CBAM for experimentation 2020-02-10 16:23:09 -08:00
Ross Wightman d725991870 Remove debug print from ECA module 2020-02-10 16:21:33 -08:00
Ross Wightman 2a7d256fd5 Re-enable mem-efficient/jit activations after torchscript tests 2020-02-10 11:59:36 -08:00
Ross Wightman f902bcd54c Layer refactoring continues, ResNet downsample rewrite for proper dilation in 3x3 and avg_pool cases
* select_conv2d -> create_conv2d
* added create_attn to create attention module from string/bool/module
* factor padding helpers into own file, use in both conv2d_same and avg_pool2d_same
* add some more test eca resnet variants
* minor tweaks, naming, comments, consistency
2020-02-10 11:55:03 -08:00
Ross Wightman a99ec4e7d1 A bunch more layer reorg, splitting many layers into own files. Improve torchscript compatibility. 2020-02-09 14:46:28 -08:00
Ross Wightman 13746a33fc Big move, layer modules and fn to timm/models/layers 2020-02-09 13:13:08 -08:00
Ross Wightman f54612f648 Merge branch 'select_kernel' into attention 2020-02-09 12:59:24 -08:00
Ross Wightman 4defbbbaa8 Fix module name mistake, start layers sub-package 2020-02-09 12:44:26 -08:00
Ross Wightman 7011cd0902 A little bit of ECA cleanup 2020-02-09 12:41:18 -08:00
Ross Wightman 46471df7b2 Merge pull request #82 from VRandme/eca
ECA-Net Efficient Channel Attention
2020-02-09 12:31:05 -08:00
Ross Wightman d0eb59ef46 Remove unused default_init for EfficientNets, experimenting with fanout calc for #84 2020-02-09 11:33:32 -08:00
Chris Ha e6a762346a Implement Adaptive Kernel selection
When channel size is given,
calculate adaptive kernel size according to original paper.
Otherwise use the given kernel size(k_size), which defaults to 3
2020-02-09 11:58:03 +09:00
Ross Wightman 13e8da2b46 SelectKernel split_input works best when input channels split like grouped conv, but output is full width. Disable zero_init for SK nets, seems a bad combo. 2020-02-07 22:42:04 -08:00
Chris Ha 6db087a1ff Merge remote-tracking branch 'upstream/master' into eca 2020-02-07 19:36:35 +09:00
Chris Ha 904c618040 Update EcaModule.py
Make pylint happy
(commas, unused imports, missed imports)
2020-02-07 19:36:18 +09:00
Chris Ha db91ba053b EcaModule(CamelCase)
CamelCased EcaModule.
Renamed all instances of ecalayer to EcaModule.
eca_module.py->EcaModule.py
2020-02-07 19:28:07 +09:00
Ross Wightman 5c4991a088 Add PyTorch trained EfficientNet-ES weights from Andrew Lavin 2020-02-06 12:53:55 -08:00
Chris Ha d63ae121d5 Clean up eca_module code
functionally similar
adjusted rwightman's version of reshaping and viewing.
Use F.pad for circular eca version for cleaner code
2020-02-06 22:44:33 +09:00
Chris Ha f87fcd7e88 Implement Eca modules
implement ECA module by
1. adopting original eca_module.py into models folder
2. adding use_eca layer besides every instance of SE layer
2020-02-04 23:15:29 +09:00
Ross Wightman 7d07ebb660 Adding some configs to sknet, incl ResNet50 variants from 'Compounding ... Assembled Techniques' paper and original SKNet50 2020-02-01 23:28:48 -08:00
Ross Wightman a9d2424fd1 Add separate zero_init_last_bn function to support more block variety without a mess 2020-02-01 22:11:00 -08:00
Ross Wightman 355aa152d5 Just leave it float for now, will look at fp16 later. Remove unused reference code. 2020-02-01 22:11:00 -08:00
Ross Wightman ef457555d3 BlockDrop working on GPU 2020-02-01 22:11:00 -08:00
Ross Wightman 3ff19079f9 Missed nn_ops.py from last commit 2020-02-01 22:11:00 -08:00
Ross Wightman 9f11b4e8a2 Add ConvBnAct layer to parallel integrated SelectKernelConv, add support for DropPath and DropBlock to ResNet base and SK blocks 2020-02-01 22:11:00 -08:00
Ross Wightman cefc9b7761 Move SelectKernelConv to conv2d_layers and more
* always apply attention in SelectKernelConv, leave MixedConv for no attention alternative
* make MixedConv torchscript compatible
* refactor first/previous dilation name to make more sense in ResNet* networks
2020-02-01 22:11:00 -08:00
Ross Wightman 9abe610931 Used wrong channel var for split 2020-02-01 22:11:00 -08:00
Ross Wightman 58e28dc7e7 Move Selective Kernel blocks/convs to their own sknet.py file 2020-02-01 22:11:00 -08:00
Ross Wightman a93bae6dc5 A SelectiveKernelBasicBlock for more experiments 2020-02-01 22:11:00 -08:00
Ross Wightman ad087b4b17 Missed bias=False in selection conv 2020-02-01 22:11:00 -08:00
Ross Wightman c8b3d6b81a Initial impl of Selective Kernel Networks. Very much a WIP. 2020-02-01 22:11:00 -08:00
Ross Wightman 91534522f9 Add newly added TF ported EfficientNet-B8 weights (RandAugment) 2020-02-01 18:01:14 -08:00
Ross Wightman 12dbc74742 New ResNet50 JSD + RandAugment weights 2020-01-31 10:55:54 -08:00
Ross Wightman 2f41905ba5 Update ResNet50 weights to AuxMix trained 78.994 top-1. A few commentes re 'tiered_narrow' tn variant. 2020-01-12 17:55:58 -08:00
Ross Wightman d9a6a9d0af
Merge pull request #74 from rwightman/augmix-jsd
AugMix, JSD loss, SplitBatchNorm (Auxiliary BN), and more
2020-01-11 12:04:29 -08:00
Ross Wightman 3eb4a96eda Update AugMix, JSD, etc comments and references 2020-01-11 12:02:05 -08:00
Ross Wightman a28117ea46 Add tiered narrow ResNet (tn) and weights for seresnext26tn_32x4d 2020-01-11 11:29:01 -08:00
Ross Wightman 833066b540 A few minor things in SplitBN 2020-01-05 20:07:03 -08:00
Ross Wightman 7547119891 Add SplitBatchNorm. AugMix, Rand/AutoAugment, Split (Aux) BatchNorm, Jensen-Shannon Divergence, RandomErasing all working together 2020-01-05 19:58:59 -08:00
Ross Wightman ec0dd4053a Add updated RandAugment trained EfficientNet-B0 trained weights from @michaelklachko 2020-01-03 17:18:46 -08:00
Ross Wightman 40fea63ebe Add checkpoint averaging script. Add headers, shebangs, exec perms to all scripts 2020-01-03 14:57:46 -08:00
Ross Wightman 53001dd292 ResNet / Res2Net additions:
* ResNet torchscript compat
* output_stride arg supported to limit network stride via dilations (support for dilation added to Res2Net)
* allow activation layer to be changed via act_layer arg
2020-01-01 17:15:56 -08:00
Ross Wightman f96b3e5e92 InceptionResNetV2 torchscript compatible 2020-01-01 17:13:37 -08:00
Ross Wightman 19d93fe454 Add selecsls60 weights 2019-12-31 16:49:04 -08:00
Ross Wightman 0062c15fb0 Update checkpoint url with modelzoo compatible ones. 2019-12-30 15:59:19 -08:00
Ross Wightman b5315e66b5 Streamline SelecSLS model without breaking checkpoint compat. Move cfg handling out of model class. Update feature/pooling behaviour to match current. 2019-12-30 15:44:47 -08:00
Ross Wightman d59a756c16 Run PyCharm autoformat on selecsls and change mix cap variables and model names to all lower 2019-12-30 14:30:46 -08:00
Ross Wightman fb3a0f4bb8
Merge pull request #65 from mehtadushy/selecsls
Incorporate SelecSLS Models
2019-12-30 14:23:53 -08:00
Ross Wightman 19fc205a4d Update comments on the new SE-ResNeXt26 models 2019-12-28 17:33:10 -08:00
Ross Wightman acc3ed2b8c Add EfficientNet-B3 weights, trained from scratch with RA. 2019-12-28 17:24:15 -08:00
Dushyant Mehta 2404361f62 correct asset paths 2019-12-28 23:32:20 +01:00
Dushyant Mehta 31939311f6 Added SelecSLS models 2019-12-28 23:06:00 +01:00
rwightman 1f4498f217 Add ResNet deep tiered stem and model weights for seresnext26t_32x4d and seresnext26d_32x4d 2019-12-28 11:43:50 -08:00
Dushyant Mehta 32012a44fd Added SelecSLS model 2019-12-28 20:41:55 +01:00
Ross Wightman 73b78459dc Add update RandAugment MixNet-XL weights 2019-12-24 10:08:24 -08:00
Ross Wightman ff421e5e09 New PyTorch trained EfficientNet-B2 weights with my RandAugment impl 2019-12-04 11:09:47 -08:00
Ross Wightman 3bef524f9c Finish with HRNet, weights and models updated. Improve consistency in model classifier/global pool treatment. 2019-11-29 17:56:36 -08:00
Ross Wightman 6ca0828166 Update EfficientNet comments, MobileNetV3 non-TF create fns, fix factory arg checks, bump PyTorch version req to 1.2 2019-11-28 17:43:00 -08:00
Ross Wightman eccbadca74 Update EfficientNet comments 2019-11-28 17:11:53 -08:00
Ross Wightman 902d32fb16 Renamed gen_efficientnet.py -> efficientnet.py 2019-11-28 17:04:35 -08:00
Ross Wightman 5a0a8de7e3 ResNet updates:
* remove redundant GluonResNet model/blocks and use the code in ResNet for Gluon weights
* change SEModules back to using AdaptiveAvgPool instead of mean, PyTorch issue long fixed
2019-11-28 17:04:35 -08:00
Ross Wightman a39cc43374 Bring EfficientNet and MobileNetV3 up to date with my gen-efficientnet repo
* Split MobileNetV3 and EfficientNet model files and put builder and blocks in own files (getting too large)
* Finalize CondConv EfficientNet variant
* Add the AdvProp weights files and B8 EfficientNet model
* Refine the feature extraction module for EfficientNet and MobileNetV3
2019-11-28 17:04:35 -08:00
Ross Wightman ad93347548 Initial HRNet classification model commit 2019-11-28 17:00:52 -08:00
Ross Wightman 2393708650 Missed stashing of out_indices in model 2019-11-28 17:00:52 -08:00
Ross Wightman 35e8f0c5e7 Fixup a few comments, add PyTorch version aware Flatten and finish as_sequential for GenEfficientNet 2019-11-28 17:00:52 -08:00
Ross Wightman 7ac6db4543 Missed activations.py 2019-11-28 17:00:52 -08:00
Ross Wightman 506df0e3d0 Add CondConv support for EfficientNet into WIP for GenEfficientNet Feature extraction setup 2019-11-28 17:00:52 -08:00
Ross Wightman 576d360f20 Bring in JIT version of optimized swish activation from gen_efficientnet as default (while working on feature extraction functionality here). 2019-11-22 13:57:45 -08:00
Ross Wightman 7b83e67f77 Pass drop connect arg through to EfficientNet models 2019-11-22 13:27:43 -08:00
Ross Wightman 0d58c50fb1 Add TF RandAug weights for B5/B7 EfficientNet models. 2019-10-30 16:49:17 -07:00
Ross Wightman c099374771 Map pretrained checkpoint to cpu to avoid issue with some pretrained checkpoints still having CUDA tensors. Fixes #42 2019-10-19 17:27:46 -07:00
Ross Wightman b93fcf0708 Add Facebook Research Semi-Supervised and Semi-Weakly Supervised ResNet model weights. 2019-10-19 17:05:37 -07:00
Ross Wightman a9eb484835 Add memory efficient Swish impl 2019-10-19 14:48:30 -07:00
rwightman d3ba34ee7e Fix Mobilenet V3 model name for sotabench. Minor res2net cleanup. 2019-09-05 15:47:56 -07:00
Ross Wightman 2680ad14bb Add Res2Net and DLA to README 2019-09-04 17:38:59 -07:00
rwightman adbf770f16 Add Res2Net and DLA models w/ pretrained weights. Update sotabench. 2019-09-04 17:06:42 -07:00
Ross Wightman aff194f42c
Merge pull request #32 from rwightman/opt
More optimizer work
2019-08-29 15:26:15 -07:00
Ross Wightman 3d9c8a6489 Add support for new AMP checkpointing support w/ amp.state_dict 2019-08-29 15:19:18 -07:00
Ross Wightman e9d2ec4d8e
Merge pull request #31 from rwightman/opt
Optimizers and more
2019-08-28 00:20:39 -07:00
Ross Wightman fac58f609a Add RAdam, NovoGrad, Lookahead, and AdamW optimizers, a few ResNet tweaks and scheduler factory tweak.
* Add some of the trendy new optimizers. Decent results but not clearly better than the standards.
* Can create a None scheduler for constant LR
* ResNet defaults to zero_init of last BN in residual
* add resnet50d config
2019-08-28 00:14:10 -07:00
Ross Wightman 81875d52a6 Update sotabench model list, add Mean-Max pooling DPN variants, disable download progress 2019-08-27 00:07:32 -07:00
Ross Wightman 73fbd97ed4 Add weights for my MixNet-XL creation, include README updates for EdgeTPU models 2019-08-24 19:57:42 -07:00
Ross Wightman 51a2375b0c Experimenting with a custom MixNet-XL and MixNet-XXL definition 2019-08-24 19:57:42 -07:00
Ross Wightman 9ec6824bab Finally got around to adding EdgeTPU EfficientNet variant 2019-08-24 13:39:49 -07:00
Ross Wightman aeaaad7304
Merge pull request #24 from rwightman/gluon_xception
Port Gluon Aligned Xception models
2019-08-11 23:08:21 -07:00
Ross Wightman 3b4868f6dc A few more additions to Gluon Xception models to match interface of others. 2019-08-11 23:06:23 -07:00
Ross Wightman 4d505e0785 Add working Gluon Xception-65 model. Some cleanup still needed. 2019-08-10 13:52:01 -07:00
Minqin Chen 4e7a854dd0
Update helpers.py
Fixing out of memory error by loading the checkpoint onto the CPU.
2019-08-11 04:21:39 +08:00
Ross Wightman 4fe2da558c Add MixNet Small and Large PyTorch native weights (no same padding) 2019-08-02 23:22:48 -07:00
Ross Wightman e879cf52fa Update validation scores for new TF EfficientNet weights. 2019-07-31 14:38:55 -07:00
Ross Wightman 77e2e0c4e3 Add new auto-augmentation Tensorflow EfficientNet weights, incl B6 and B7 models. Validation scores still pending but looking good. 2019-07-30 18:31:02 -07:00
Ross Wightman 857f33015a Add native PyTorch weights for MixNet-Medium with no SAME padding necessary. Remove unused block of code. 2019-07-29 11:59:15 -07:00
Ross Wightman d4debe6597 Update version, results csv files, and move remaining dropbox weights to github 2019-07-25 16:54:44 -07:00
Ross Wightman dfa9298b4e Add MixNet (https://arxiv.org/abs/1907.09595) with pretrained weights converted from Tensorflow impl
* refactor 'same' convolution and add helper to use MixedConv2d when needed
* improve performance of 'same' padding for cases that can be handled statically
* add support for extra exp, pw, and dw kernel specs with grouping support to decoder/string defs for MixNet
* shuffle some args for a bit more consistency, a little less clutter overall in gen_efficientnet.py
2019-07-25 11:42:01 -07:00
Ross Wightman d6ac5bbc48 EfficientNet and related cleanup
* remove folded_bn support and corresponding untrainable tflite ported weights
* combine bn args into dict
* add inplace support to activations and use where possible for reduced mem on large models
2019-07-22 09:29:58 -07:00
Ross Wightman 3d9be78fc6 A bit more ResNet cleanup.
* add inplace=True back
* minor comment improvements
* few clarity changes
2019-07-19 16:44:35 -07:00
Ross Wightman 33436fafad Add weights for ResNeXt50d model 2019-07-19 14:09:10 -07:00