Commit Graph

342 Commits (7cae7e7035fde90d65a055a612489fbd9253da1a)

Author SHA1 Message Date
Ross Wightman 328339a086 Add ESE-VoVNet-19-DW weights 2020-06-15 14:31:55 -07:00
Ross Wightman 2d83752bc2 Fix default interpolation/crop of largest 2 ResNeSt models 2020-06-12 16:42:47 -07:00
Ross Wightman f225ae8e59 Update README with model results and attribution. Make scheduler factory bit more robust to arg differences, add noise to plateau lr and fix min/max. 2020-06-12 13:33:12 -07:00
Ross Wightman 39f27c1add Almost ready to merge, vovnet typo, version bump, readme addition 2020-06-11 15:41:58 -07:00
Ross Wightman 151679c2f1 Add custom grad tests, fix cut & paste error with hard_mish ME, add a few more pytorch act fns to factory 2020-06-11 14:49:23 -07:00
Ross Wightman 6c7932fe75 Update sotabench.py, tweak VovNet cfg 2020-06-11 14:34:25 -07:00
Ross Wightman 0aca08384f Update regnet cfg keys to match model names so registry works properly 2020-06-09 14:37:45 -07:00
Antoine Broyelle 78fa0772cc Leverage python hierachical logger
with this update one can tune the kind of logs generated by timm but
training and inference traces are unchanged
2020-06-09 18:28:48 +01:00
Ross Wightman 13c0a6290e Add ESE-VovNet39 weights, 79.32 top-1 2020-06-06 22:50:21 -07:00
Ross Wightman 4ddde1d3a4 Fix two regressions 2020-06-05 11:04:51 -07:00
Ross Wightman a7e8cadd15 Remove pointless densenet configs, add an iabn version of 264 as it makes more sense to try someday... 2020-06-03 17:13:52 -07:00
Ross Wightman e78daf586a better densenet121 and densenetblur121d weights 2020-06-03 13:30:03 -07:00
Ross Wightman 7be299504f Add missing feature_info() on MobileNetV3, make hook feature output order/type consistent with bottleneck (list, decreasing fmap size) 2020-06-03 00:00:37 -07:00
Ross Wightman 88129b2569 Add set_layer_config contextmgr to adjust all layer configs at once, use in create_module with new args. Remove a few old warning causing constant annotations for jit. 2020-06-02 21:06:10 -07:00
Ross Wightman f28170df3f Fix an an untested change, remove a debug print 2020-06-01 17:26:42 -07:00
Ross Wightman eb7653614f Monster commit, activation refactor, VoVNet, norm_act improvements, more
* refactor activations into basic PyTorch, jit scripted, and memory efficient custom auto
* implement hard-mish, better grad for hard-swish
* add initial VovNet V1/V2 impl, fix #151
* VovNet and DenseNet first models to use NormAct layers (support BatchNormAct2d, EvoNorm, InplaceIABN)
* Wrap IABN for any models that use it
* make more models torchscript compatible (DPN, PNasNet, Res2Net, SelecSLS) and add tests
2020-06-01 17:16:52 -07:00
Ross Wightman 0ea53cecc3 Merge branch 'master' into densenet_update_and_more 2020-05-22 16:18:10 -07:00
Ross Wightman 6441e9cc1b Fix memory_efficient mode for DenseNets. Add AntiAliasing (Blur) support for DenseNets and create one test model. Add lr cycle/mul params to train args. 2020-05-22 16:16:45 -07:00
Ross Wightman afb6bd0669 Add backward and default_cfg tests and fix a few issues found. Fix #153 2020-05-21 15:30:58 -07:00
Ross Wightman 50658b9a67 Add RegNet models and weights 2020-05-18 00:08:52 -07:00
Ross Wightman 7df83258c9 Merge branch 'master' into densenet_update_and_more 2020-05-13 23:34:44 -07:00
Ross Wightman 1904ed8fec Improve dropblock impl, add fast variant, and better AMP speed, inplace, batchwise... few ResNeSt cleanups 2020-05-13 15:17:08 -07:00
Ross Wightman 17270c69b9 Remove annoying InceptionV3 dependency on scipy and insanely slow trunc_norm init. Bring InceptionV3 code into this codebase and use upcoming torch trunch_norm_ init. 2020-05-12 21:59:34 -07:00
Ross Wightman c4ca016656
Merge pull request #145 from rwightman/resnest
ResNeSt
2020-05-12 13:38:29 -07:00
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
AFLALO, Jonathan Isaac a7f570c9b7 added MultiEpochsDataLoader 2020-05-05 14:47:02 +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
Ross Wightman c9b6f415ca Bump version for Pypi release 2020-05-03 21:18:47 -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 1d4ac1b165 Bump version for pypi release. Fix #130 2020-04-27 18:02:40 -07: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
Ross Wightman 64fe37d008 Remove old mean/std helper, rely fully on cmd line or default_cfg now. Fixes #126 2020-04-27 12:32:55 -07:00
Ross Wightman e6f24e5578 Add 'momentum' optimizer (SGD w/o nesterov) for stable EfficientDet training defaults 2020-04-25 19:42:13 -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 13cf68850b Remove poorly named metrics from torch imagenet example origins. Use top1/top5 in csv output for consistency with existing validation results files, acc elsewhere. Fixes #111 2020-04-10 14:41:08 -07:00
Ross Wightman 56608c9070 Bump version for pypi 2020-04-09 01:46:05 -07: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
Andrew Lavin d92cc4da54 Modified save_checkpoint to always save last checkpoint. Fixes #98. 2020-03-09 22:41:33 -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 27b3680d49 Revamp LR noise, move logic to scheduler base. Fixup PlateauLRScheduler and add it as an option. 2020-02-22 16:23:15 -08:00
Ross Wightman cc5a11abba version bump for PyPi update 2020-02-22 10:26:19 -08:00
Ross Wightman 514b0938c4 Experimenting with per-epoch learning rate noise w/ step scheduler 2020-02-21 11:51:05 -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 670c61b28f Some cutmix/mixup cleanup/fixes 2020-02-17 11:00:54 -08:00
Ross Wightman b3cb5f3275 Working on CutMix impl as per #8, integrating with Mixup, currently experimenting... 2020-02-16 20:09:11 -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 f098fda2ca Add map_location='cpu' to ModelEma resume, should improve #72 2020-02-12 13:23:56 -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 d04ff95eda Merge branch 'master' into eca 2020-02-06 22:44:52 +09: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
Ross Wightman d66819d1f3 Indentation mistake. Fixes #81 2020-02-04 22:56:00 -08: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 4808b3c32f Bump version for PyPi update, fix few out of date README items/mistakes, add README updates for TF EfficientNet-B8 (RandAugment) 2020-02-03 11:44:17 -08: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 1daa303744 Add support to Dataset for class id mapping file, clean up a bit of old logic. Add results file arg for validation and update script. 2020-02-01 18:07:32 -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 2e955cfd0c Update RandomErasing with some improved arg names, tweak to aspect range 2020-01-05 14:31:48 -08:00
Ross Wightman 3cc0f91e23 Fix augmix variable name scope overlap, default non-blended mode 2020-01-05 14:27:27 -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 4666cc9aed Add --pin-mem arg to enable dataloader pin_memory (showing more benefit in some scenarios now), also add --torchscript arg to validate.py for testing models with jit.script 2020-01-02 16:22:06 -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