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