Commit Graph

464 Commits (899cf84ccc7e371f83f6dc55076356d91ab6c0a2)

Author SHA1 Message Date
Ross Wightman 0167f749d3 Remove some old __future__ imports 2021-01-03 11:24:16 -08:00
Ross Wightman ce69de70d3 Add 21k weight urls to vision_transformer. Cleanup feature_info for preact ResNetV2 (BiT) models 2020-12-28 16:59:15 -08:00
Ross Wightman 231d04e91a ResNetV2 pre-act and non-preact model, w/ BiT pretrained weights and support for ViT R50 model. Tweaks for in21k num_classes passing. More to do... tests failing. 2020-12-28 16:59:15 -08:00
Ross Wightman 392595c7eb Add pool_size to default cfgs for new models to prevent tests from failing. Add explicit 200D_320 model entrypoint for next benchmark run. 2020-12-18 21:28:47 -08:00
Ross Wightman b1f1228a41 Add ResNet101D, 152D, and 200D weights, remove meh 66d model 2020-12-18 17:13:37 -08:00
Ross Wightman cd72e66eff Bug in last mod for features_only default_cfg 2020-12-03 12:33:01 -08:00
Ross Wightman 867a0e5a04 Add default_cfg back to models wrapped in feature extraction module as per discussion in #294. 2020-12-03 10:24:35 -08:00
Ross Wightman 2ed8f24715 A few more changes for 0.3.2 maint release. Linear layer change for mobilenetv3 and inception_v3, support no bias for linear wrapper. 2020-11-30 16:19:52 -08:00
Ross Wightman 460eba7f24 Work around casting issue with combination of native torch AMP and torchscript for Linear layers 2020-11-30 13:30:51 -08:00
Ross Wightman 5f4b6076d8 Fix inplace arg compat for GELU and PreLU via activation factory 2020-11-30 13:27:40 -08:00
Ross Wightman fd962c4b4a Native SiLU (Swish) op doesn't export to ONNX 2020-11-29 21:56:55 -08:00
tigertang 43f2500c26
Add symbolic for SwishJitAutoFn to support onnx 2020-11-18 14:36:12 +08:00
Ross Wightman b401952caf Add newly added vision transformer large/base 224x224 weights ported from JAX official repo 2020-10-29 17:31:01 -07:00
Ross Wightman 61200db0ab in_chans=1 working w/ pretrained weights for vision_transformer 2020-10-29 15:49:36 -07:00
Ross Wightman e90edce438 Support native silu activation (aka swish). An optimized ver is available in PyTorch 1.7. 2020-10-29 15:45:17 -07:00
Ross Wightman da6cd2cc1f Fix regression for pretrained classifier loading when using entrypt functions directly 2020-10-29 15:43:39 -07:00
Ross Wightman f591e90b0d Make sure num_features attr is present in vit models as with others 2020-10-29 15:33:47 -07:00
Ross Wightman f944242cb0 Fix #262, num_classes arg mixup. Make vision_transformers a bit closer to other models wrt get/reset classfier/forward_features. Fix torchscript for ViT. 2020-10-29 13:58:28 -07:00
Ross Wightman 736f209e7d Update vision transformers to be compatible with official code. Port official ViT weights from jax impl. 2020-10-26 18:42:11 -07:00
Ross Wightman 27a93e9de7 Improve test crop for ViT models. Small now 77.85, added base weights at 79.35 top-1. 2020-10-21 23:35:25 -07:00
Ross Wightman d4db9e7977 Add small vision transformer weights. 77.42 top-1. 2020-10-21 12:14:12 -07:00
Ross Wightman f31933cb37 Initial Vision Transformer impl w/ patch and hybrid variants. Refactor tuple helpers. 2020-10-13 13:33:44 -07:00
Ross Wightman fcb6258877 Add missing leaky_relu layer factory defn, update Apex/Native loss scaler interfaces to support unscaled grad clipping. Bump ver to 0.2.2 for pending release. 2020-10-02 16:19:39 -07:00
Ross Wightman e8e2d9cabf Add DropPath (stochastic depth) to ReXNet and VoVNet. RegNet DropPath impl tweak and dedupe se args. 2020-09-24 18:20:36 -07:00
Ross Wightman e8ca45854c More models in sotabench, more control over sotabench run, dataset filename extraction consistency 2020-09-24 15:56:57 -07:00
Ross Wightman 9c406532bd Add EfficientNet-EdgeTPU-M (efficientnet_em) model trained natively in PyTorch. More sotabench fiddling. 2020-09-23 17:12:07 -07:00
Ross Wightman c40384f5bd Add ResNet weights. 80.5 (top-1) ResNet-50-D, 77.1 ResNet-34-D, 72.7 ResNet-18-D. 2020-09-18 12:05:37 -07:00
Ross Wightman 33f8a1bf36 Updated README, add wide_resnet50_2 and seresnext50_32x4d weights 2020-09-03 10:45:17 -07:00
Ross Wightman 751b0bba98 Add global_pool (--gp) arg changes to allow passing 'fast' easily for train/validate to avoid channels_last issue with AdaptiveAvgPool 2020-09-02 16:13:47 -07:00
Ross Wightman 9c297ec67d Cleanup Apex vs native AMP scaler state save/load. Cleanup CheckpointSaver a bit. 2020-09-02 15:12:59 -07:00
Ross Wightman 80c9d9cc72 Add 'fast' global pool option, remove redundant SEModule from tresnet, normal one is now 'fast' 2020-09-02 09:11:48 -07:00
Ross Wightman 90a01f47d1 hrnet features_only pretrained weight loading issue. Fix #232. 2020-09-01 17:37:55 -07:00
Ross Wightman 110a7c4982 AdaptiveAvgPool2d -> mean((2,3)) for all SE/attn layers to avoid NaN with AMP + channels_last layout. See https://github.com/pytorch/pytorch/issues/43992 2020-09-01 16:05:32 -07:00
Ross Wightman 470220b1f4 Fix MobileNetV3 crash with global_pool='', output consistent with other models but not equivalent due to efficient head. 2020-08-18 14:11:30 -07:00
Ross Wightman fc8b8afb6f Fix a silly bug in Sample version of EvoNorm missing x* part of swish, update EvoNormBatch to accumulated unbiased variance. 2020-08-13 18:25:01 -07:00
Ross Wightman 0f5d9d8166 Add CSPResNet50 weights, 79.6 top-1 at 256x256 2020-08-12 11:20:11 -07:00
Ross Wightman b1b6e7c361 Fix a few more issues related to #216 w/ TResNet (space2depth) and FP16 weights in wide resnets. Also don't completely dump pretrained weights in in_chans != 1 or 3 cases. 2020-08-11 18:57:47 -07:00
Ross Wightman 512b2dd645 Add new EfficientNet-B3 and RegNetY-3.2GF weights, both just over 82 top-1 2020-08-11 14:18:51 -07:00
Ross Wightman 6890300877 Add DropPath (stochastic depth) to RegNet 2020-08-11 14:08:53 -07:00
Yusuke Uchida f6b56602f9 fix test_model_default_cfgs 2020-08-11 23:23:57 +09:00
Ross Wightman d5145fa4d5 Change default_cfg names for senet to include the legacy and match model names 2020-08-08 11:12:58 -07:00
Ross Wightman b1f1a54de9 More uniform treatment of classifiers across all models, reduce code duplication. 2020-08-03 22:18:24 -07:00
Ross Wightman d72ddafe56 Fix some checkpoint / model str regressions 2020-07-29 19:43:01 -07:00
Ross Wightman ac18adb9c3 Remove debug print from RexNet 2020-07-29 11:15:19 -07:00
Ross Wightman ec4976fdba Add EfficientNet-Lite0 weights trained with this code by @hal-314, 75.484 top-1 2020-07-29 00:32:08 -07:00
Ross Wightman 9ecd16bd7b Add new seresnet50 (non-legacy) model weights, 80.274 top-1 2020-07-29 00:17:42 -07:00
Ross Wightman 7995295968 Merge branch 'logger' into features. Change 'logger' to '_logger'. 2020-07-27 18:00:46 -07:00
Ross Wightman 1998bd3180 Merge branch 'feature/AB/logger' of https://github.com/antoinebrl/pytorch-image-models into logger 2020-07-27 16:06:01 -07:00
Ross Wightman 6c17d57a2c Fix some attributions, add copyrights to some file docstrings 2020-07-27 13:44:56 -07:00
Ross Wightman a69c0e04f0 Fix pool size in cspnet 2020-07-27 13:44:02 -07:00
Ross Wightman 14ef7a0dd6 Rename csp.py -> cspnet.py 2020-07-27 11:15:07 -07:00
Ross Wightman ec37008432 Add pretrained weight links to CSPNet for cspdarknet53, cspresnext50 2020-07-27 11:13:21 -07:00
Ross Wightman 08016e839d Cleanup FeatureInfo getters, add TF models sourced Xception41/65/71 weights 2020-07-24 17:59:21 -07:00
Ross Wightman 7ba5a384d3 Add ReXNet w/ remapped weights, feature support 2020-07-23 10:28:57 -07:00
Ross Wightman c9d54bc1c3 Add HRNet feature extraction, fix senet type, lower feature testing res to 96x96 2020-07-21 17:39:29 -07:00
Ross Wightman 2ac663f340 Add feature support to legacy senets, add 32x32 resnext models to exclude list for feature testing. 2020-07-21 11:15:30 -07:00
Ross Wightman c146b54abc Cleanup EfficientNet/MobileNetV3 feature extraction a bit, only two tap locations now, small mobilenetv3 models work 2020-07-21 01:21:38 -07:00
Ross Wightman 68fd8a267b Merge branch 'master' into features 2020-07-20 16:11:38 -07:00
Ross Wightman 4e61c6a12d Cleanup, refactoring of Feature extraction code, add tests, fix tests, non hook feature extraction working with torchscript 2020-07-20 16:10:31 -07:00
Ross Wightman 6eec3fb4a4 Move FeatureHooks into features.py, switch EfficientNet, MobileNetV3 to use build model helper 2020-07-19 15:00:43 -07:00
Ross Wightman 9eba134d79 More models supporting feature extraction, xception, gluon_xception, inception_v3, inception_v4, pnasnet, nasnet, dla. Fix DLA unused projection params. 2020-07-19 14:02:02 -07:00
Ross Wightman 298fba09ac Back out some activation hacks trialing upcoming pytorch changes 2020-07-17 18:41:37 -07:00
Ross Wightman 3b9004bef9 Lots of changes to model creation helpers, close to finalizing feature extraction / interfaces 2020-07-17 17:54:26 -07:00
Ross Wightman e2cc481310 Update CSP ResNets for cross expansion without activation. Fix VovNet IABN compatibility with fixed activation arg. 2020-07-13 16:24:55 -07:00
Ross Wightman 3b6cce4c95 Add initial impl of CrossStagePartial networks, yet to be trained, not quite the same as darknet cfgs. 2020-07-13 15:01:06 -07:00
Ross Wightman 3aebc2f06c Switch DPN to use BnAct layer, train a new DPN 68b model with RA to 79.21 2020-07-12 11:13:06 -07:00
Ross Wightman f122f0274b Significant ResNet refactor:
* stage creation + make_layer moved to separate fn with more sensible dilation/output_stride calc
* drop path rate decay easy to impl with refactored block creation loops
* fix dilation + blur pool combo
2020-07-05 00:48:12 -07:00
Ross Wightman a66df5fb91 More model feature extraction support, start to deprecate senet.py, dilations added to regnet, add proper aligned xception 2020-07-03 00:41:30 -07:00
Ross Wightman 7729f40dca Fix another bug, update all gluon resnet models to use new creation method (feature support) 2020-06-30 16:44:15 -07:00
Ross Wightman d72ac0db25 Fix #173, lr cycle default 0 vs 1. Fix #177, mirror resnest weights for future stability. 2020-06-29 21:31:48 -07:00
Ross Wightman d0113f9cdb Fix a few issues that came up in tests 2020-06-29 21:13:21 -07:00
Ross Wightman d23a2697d0 Working on feature extraction, interfaces refined, a number of models working, some in progress. 2020-06-29 18:18:59 -07:00
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 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
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
Ross Wightman e78cd79073 Move ResNet additions for Gluon into main ResNet impl. Add ResNet-26 and ResNet-26d models with weights. 2019-07-14 18:17:35 -07:00
Ross Wightman 949b7a81c4 Fix typo in Densenet default resolutions 2019-07-03 22:11:26 -07:00
Ross Wightman da52fcf78a Add NASNet-Large model 2019-07-03 22:10:50 -07:00
Ross Wightman 6057496409 Register dpn107 2019-06-30 09:57:06 -07:00
Ross Wightman a6878b5218 Fix DPN config keys that I broke 2019-06-30 09:54:52 -07:00