Commit Graph

1071 Commits (main)

Author SHA1 Message Date
Ross Wightman 1904ed8fec Improve dropblock impl, add fast variant, and better AMP speed, inplace, batchwise... few ResNeSt cleanups
5 years ago
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.
5 years ago
Ross Wightman c4ca016656
Merge pull request #145 from rwightman/resnest
5 years ago
Ross Wightman 208e7912f7 Missed one of the abalation model entrypoints, update README
5 years ago
Ross Wightman 9cc289f18c Exclude EfficientNet-L2 models from test
5 years ago
Ross Wightman 2f884a0ce5 Add resnest14, resnest26, and two of the abalation grouped resnest50 models
5 years ago
Ross Wightman f4cdc2ac31 Add ResNeSt models
5 years ago
Ross Wightman 780860d140 Add norm_act factory method, move JIT of norm layers to factory
5 years ago
Ross Wightman 14edacdf9a DenseNet converted to support ABN (norm + act) modules. Experimenting with EvoNorm, IABN
5 years ago
Ross Wightman 022ed001f3 Update DenseNet to latest in Torchvision (torchscript compat, checkpointing, proper init). Start adding ehanced configurability, stem options...
5 years ago
Vyacheslav Shults a7ebe09029 Replace all None by nn.Identity() in all models reset_classifier when False-values num_classes is given.
5 years ago
Vyacheslav Shults f0eb021620 Replace all None by nn.Identity() in HRNet modules
5 years ago
AFLALO, Jonathan Isaac a7f570c9b7 added MultiEpochsDataLoader
5 years ago
Ross Wightman 8d8677e03b Fix #139. Broken SKResNets after BlurPool addition, as a plus, SKResNets support AA now too.
5 years ago
Ross Wightman c9b6f415ca Bump version for Pypi release
5 years ago
AFLALO, Jonathan Isaac 9c15d57505 added efficientnet pruned weights
5 years ago
Ross Wightman ea300709f0 Fix model create fn not passing num_classes through. Fix #135
5 years ago
Ross Wightman 2c438c4e0d Merge branch 'master' of github.com:rwightman/pytorch-models
5 years ago
Ross Wightman 2681a8d618 Final blurpool2d cleanup and add resnetblur50 weights, match tresnet Downsample arg order to BlurPool2d for interop
5 years ago
Ross Wightman 9590f301a9 Merge branch 'blur' of https://github.com/VRandme/pytorch-image-models into VRandme-blur
5 years ago
Ross Wightman a5220ad3aa
Merge pull request #125 from Separius/patch-1
5 years ago
Ross Wightman 0834fbc01c Move pruned model adapt strings to separate txt files. A few minor formatting alignment tweaks.
5 years ago
Ross Wightman ba793f5c1c Merge branch 'adding_ECA_resnet' of https://github.com/yoniaflalo/pytorch-image-models into yoniaflalo-adding_ECA_resnet
5 years ago
AFLALO, Jonathan Isaac 07f19dd699 added eca resnet
5 years ago
Ross Wightman 1d4ac1b165 Bump version for pypi release. Fix #130
5 years ago
Ross Wightman be7c784d21 Small TResNet simplification, just use SelectAdaptivePool, don't notice any perf difference
5 years ago
Ross Wightman e3a98171b2 Remove some CRLF that made it into TResNet merge
5 years ago
Ross Wightman 0004f37d25 Some TResNet cleanup.
5 years ago
Ross Wightman 64fe37d008 Remove old mean/std helper, rely fully on cmd line or default_cfg now. Fixes #126
5 years ago
Ross Wightman e6f24e5578 Add 'momentum' optimizer (SGD w/o nesterov) for stable EfficientDet training defaults
5 years ago
Sepehr Sameni 20290b5b56
fix typo in eca
5 years ago
Ross Wightman ebf82b84ac
Merge pull request #122 from mrT23/master
5 years ago
Alexey Chernov bdb165a8a4 Merge changes in feature extraction interface to MobileNetV3
5 years ago
talrid 8a63c1add8 finalizing
5 years ago
talrid 6209146738 TResNet models
5 years ago
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
5 years ago
Ross Wightman 56608c9070 Bump version for pypi
5 years ago
Ross Wightman 1a8f5900ab Update EfficientNet feature extraction for EfficientDet. Add needed MaxPoolSame as well.
5 years ago
Chris Ha 06a50a94a8 Fix minor typos in create_attn.py and resnet.py
5 years ago
Ross Wightman 1a9ab07307 One too many changes at a time, fix missing C
5 years ago
Ross Wightman f17b42bc33 Blur filter no longer a buffer
5 years ago
Ross Wightman 6cdeca24a3 Some cleanup and fixes for initial BlurPool impl. Still some testing and tweaks to go...
5 years ago
Chris Ha acd1b6cccd Implement Functional Blur on resnet.py
5 years ago
Chris Ha ce3d82b58b Update blurpool.py
5 years ago
Chris Ha 3a287a6e76 Create blurpool.py
5 years ago
Ross Wightman c99a5abed4
Merge pull request #115 from rwightman/mobilenetv2-experiment
5 years ago
Ross Wightman e34074b4da Add final weights for MobileNet-V2 experiments
5 years ago
Ross Wightman a6a5565de7 Fiddling...
5 years ago
Ross Wightman 5a16c533ff Add better resnext50_32x4d weights trained by andravin
5 years ago
Ross Wightman bc998cad91 Experimenting with some MobileNetV2 variations to compare against EfficientNet-Lite
5 years ago
Ross Wightman 3406e582cf Add EfficientNet-Lite results, update README
5 years ago
Ross Wightman bd05258f7b EfficientNet-Lite model added w/ converted checkpoints, validation in progress...
5 years ago
Andrew Lavin d92cc4da54 Modified save_checkpoint to always save last checkpoint. Fixes #98.
5 years ago
Ross Wightman 56e2ac3a6d
Merge pull request #94 from rwightman/lr_noise
5 years ago
Ross Wightman c16f25ced2 Add MobileNetV3 Large weights, results, update README and sotabench for merge
5 years ago
Ross Wightman c60069c1eb Annotate types on drop fns to avoid torchscript error
5 years ago
Ross Wightman 9fee316752 Enable fixed fanout calc in EfficientNet/MobileNetV3 weight init by default. Fix #84
5 years ago
Ross Wightman 27b3680d49 Revamp LR noise, move logic to scheduler base. Fixup PlateauLRScheduler and add it as an option.
5 years ago
Ross Wightman cc5a11abba version bump for PyPi update
5 years ago
Ross Wightman 514b0938c4 Experimenting with per-epoch learning rate noise w/ step scheduler
5 years ago
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.
5 years ago
Ross Wightman f1d5f8a6c4 Update comments for Selective Kernel and DropBlock/Path impl, add skresnet34 weights
5 years ago
Ross Wightman 670c61b28f Some cutmix/mixup cleanup/fixes
5 years ago
Ross Wightman b3cb5f3275 Working on CutMix impl as per #8, integrating with Mixup, currently experimenting...
5 years ago
Ross Wightman 569419b38d Tweak some comments, add SKNet models with weights to sotabench, remove an unused branch
5 years ago
Ross Wightman 53c47479c4 Batch validation batch size adjustment, tweak L2 crop pct
5 years ago
Ross Wightman 08553e16b3 Merge branch 'master' into attention
5 years ago
Ross Wightman fa38f24967 Update SK network configs, add weights for skresnet8 and skresnext50
5 years ago
Ross Wightman f098fda2ca Add map_location='cpu' to ModelEma resume, should improve #72
5 years ago
Ross Wightman ba15ca47e8 Add ported EfficientNet-L2, B0-B7 NoisyStudent weights from TF TPU
5 years ago
Ross Wightman 5e6dbbaf30 Add CBAM for experimentation
5 years ago
Ross Wightman d725991870 Remove debug print from ECA module
5 years ago
Ross Wightman 2a7d256fd5 Re-enable mem-efficient/jit activations after torchscript tests
5 years ago
Ross Wightman f902bcd54c Layer refactoring continues, ResNet downsample rewrite for proper dilation in 3x3 and avg_pool cases
5 years ago
Ross Wightman a99ec4e7d1 A bunch more layer reorg, splitting many layers into own files. Improve torchscript compatibility.
5 years ago
Ross Wightman 13746a33fc Big move, layer modules and fn to timm/models/layers
5 years ago
Ross Wightman f54612f648 Merge branch 'select_kernel' into attention
5 years ago
Ross Wightman 4defbbbaa8 Fix module name mistake, start layers sub-package
5 years ago
Ross Wightman 7011cd0902 A little bit of ECA cleanup
5 years ago
Ross Wightman 46471df7b2 Merge pull request #82 from VRandme/eca
5 years ago
Ross Wightman d0eb59ef46 Remove unused default_init for EfficientNets, experimenting with fanout calc for #84
5 years ago
Chris Ha e6a762346a Implement Adaptive Kernel selection
5 years ago
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.
5 years ago
Chris Ha 6db087a1ff Merge remote-tracking branch 'upstream/master' into eca
5 years ago
Chris Ha 904c618040 Update EcaModule.py
5 years ago
Chris Ha db91ba053b EcaModule(CamelCase)
5 years ago
Ross Wightman 5c4991a088 Add PyTorch trained EfficientNet-ES weights from Andrew Lavin
5 years ago
Chris Ha d04ff95eda Merge branch 'master' into eca
5 years ago
Chris Ha d63ae121d5 Clean up eca_module code
5 years ago
Ross Wightman d66819d1f3 Indentation mistake. Fixes #81
5 years ago
Chris Ha f87fcd7e88 Implement Eca modules
5 years ago
Ross Wightman 4808b3c32f Bump version for PyPi update, fix few out of date README items/mistakes, add README updates for TF EfficientNet-B8 (RandAugment)
5 years ago
Ross Wightman 7d07ebb660 Adding some configs to sknet, incl ResNet50 variants from 'Compounding ... Assembled Techniques' paper and original SKNet50
5 years ago
Ross Wightman a9d2424fd1 Add separate zero_init_last_bn function to support more block variety without a mess
5 years ago
Ross Wightman 355aa152d5 Just leave it float for now, will look at fp16 later. Remove unused reference code.
5 years ago
Ross Wightman ef457555d3 BlockDrop working on GPU
5 years ago
Ross Wightman 3ff19079f9 Missed nn_ops.py from last commit
5 years ago
Ross Wightman 9f11b4e8a2 Add ConvBnAct layer to parallel integrated SelectKernelConv, add support for DropPath and DropBlock to ResNet base and SK blocks
5 years ago
Ross Wightman cefc9b7761 Move SelectKernelConv to conv2d_layers and more
5 years ago
Ross Wightman 9abe610931 Used wrong channel var for split
5 years ago
Ross Wightman 58e28dc7e7 Move Selective Kernel blocks/convs to their own sknet.py file
5 years ago
Ross Wightman a93bae6dc5 A SelectiveKernelBasicBlock for more experiments
5 years ago
Ross Wightman ad087b4b17 Missed bias=False in selection conv
5 years ago
Ross Wightman c8b3d6b81a Initial impl of Selective Kernel Networks. Very much a WIP.
5 years ago
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.
5 years ago
Ross Wightman 91534522f9 Add newly added TF ported EfficientNet-B8 weights (RandAugment)
5 years ago
Ross Wightman 12dbc74742 New ResNet50 JSD + RandAugment weights
5 years ago
Ross Wightman 2f41905ba5 Update ResNet50 weights to AuxMix trained 78.994 top-1. A few commentes re 'tiered_narrow' tn variant.
5 years ago
Ross Wightman d9a6a9d0af
Merge pull request #74 from rwightman/augmix-jsd
5 years ago
Ross Wightman 3eb4a96eda Update AugMix, JSD, etc comments and references
5 years ago
Ross Wightman a28117ea46 Add tiered narrow ResNet (tn) and weights for seresnext26tn_32x4d
5 years ago
Ross Wightman 833066b540 A few minor things in SplitBN
5 years ago
Ross Wightman 7547119891 Add SplitBatchNorm. AugMix, Rand/AutoAugment, Split (Aux) BatchNorm, Jensen-Shannon Divergence, RandomErasing all working together
5 years ago
Ross Wightman 2e955cfd0c Update RandomErasing with some improved arg names, tweak to aspect range
5 years ago
Ross Wightman 3cc0f91e23 Fix augmix variable name scope overlap, default non-blended mode
5 years ago
Ross Wightman ec0dd4053a Add updated RandAugment trained EfficientNet-B0 trained weights from @michaelklachko
5 years ago
Ross Wightman 40fea63ebe Add checkpoint averaging script. Add headers, shebangs, exec perms to all scripts
5 years ago
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
5 years ago
Ross Wightman 53001dd292 ResNet / Res2Net additions:
5 years ago
Ross Wightman f96b3e5e92 InceptionResNetV2 torchscript compatible
5 years ago
Ross Wightman 19d93fe454 Add selecsls60 weights
5 years ago
Ross Wightman 0062c15fb0 Update checkpoint url with modelzoo compatible ones.
5 years ago
Ross Wightman b5315e66b5 Streamline SelecSLS model without breaking checkpoint compat. Move cfg handling out of model class. Update feature/pooling behaviour to match current.
5 years ago
Ross Wightman d59a756c16 Run PyCharm autoformat on selecsls and change mix cap variables and model names to all lower
5 years ago
Ross Wightman fb3a0f4bb8
Merge pull request #65 from mehtadushy/selecsls
5 years ago
Ross Wightman 19fc205a4d Update comments on the new SE-ResNeXt26 models
5 years ago
Ross Wightman acc3ed2b8c Add EfficientNet-B3 weights, trained from scratch with RA.
5 years ago
Dushyant Mehta 2404361f62 correct asset paths
5 years ago
Dushyant Mehta 31939311f6 Added SelecSLS models
5 years ago
rwightman 1f4498f217 Add ResNet deep tiered stem and model weights for seresnext26t_32x4d and seresnext26d_32x4d
5 years ago
Dushyant Mehta 32012a44fd Added SelecSLS model
5 years ago
Ross Wightman 73b78459dc Add update RandAugment MixNet-XL weights
5 years ago
Ross Wightman 3afc2a4dc0 Some cleanup/improvements to AugMix impl:
5 years ago
Ross Wightman 232ab7fb12 Working on an implementation of AugMix with JensenShannonDivergence loss that's compatible with my AutoAugment and RandAugment impl
5 years ago
Ross Wightman a435ea1327 Change reduce_bn to distribute_bn, add ability to choose between broadcast and reduce (mean). Add crop_pct arg to allow selecting validation crop while training.
5 years ago
Ross Wightman 3bff2b21dc Add support for keeping running bn stats the same across distributed training nodes before eval/save
5 years ago
Ross Wightman 0161de0127 Switch RandoErasing back to on GPU normal sampling
5 years ago
Ross Wightman ff421e5e09 New PyTorch trained EfficientNet-B2 weights with my RandAugment impl
5 years ago
Ross Wightman 3bef524f9c Finish with HRNet, weights and models updated. Improve consistency in model classifier/global pool treatment.
5 years ago
Ross Wightman 6ca0828166 Update EfficientNet comments, MobileNetV3 non-TF create fns, fix factory arg checks, bump PyTorch version req to 1.2
5 years ago
Ross Wightman eccbadca74 Update EfficientNet comments
5 years ago
Ross Wightman 902d32fb16 Renamed gen_efficientnet.py -> efficientnet.py
5 years ago
Ross Wightman 5a0a8de7e3 ResNet updates:
5 years ago
Ross Wightman a39cc43374 Bring EfficientNet and MobileNetV3 up to date with my gen-efficientnet repo
5 years ago
Ross Wightman ad93347548 Initial HRNet classification model commit
5 years ago
Ross Wightman 2393708650 Missed stashing of out_indices in model
5 years ago
Ross Wightman 35e8f0c5e7 Fixup a few comments, add PyTorch version aware Flatten and finish as_sequential for GenEfficientNet
5 years ago
Ross Wightman 7ac6db4543 Missed activations.py
5 years ago
Ross Wightman 506df0e3d0 Add CondConv support for EfficientNet into WIP for GenEfficientNet Feature extraction setup
5 years ago
Ross Wightman 576d360f20 Bring in JIT version of optimized swish activation from gen_efficientnet as default (while working on feature extraction functionality here).
5 years ago
Ross Wightman 7b83e67f77 Pass drop connect arg through to EfficientNet models
5 years ago
Ross Wightman 31453b039e Update Auto/RandAugment comments, README, more.
5 years ago
Ross Wightman 4243f076f1 Adding RandAugment to AutoAugment impl, some tweaks to AA included
5 years ago
Ross Wightman 0d58c50fb1 Add TF RandAug weights for B5/B7 EfficientNet models.
5 years ago
Ross Wightman c099374771 Map pretrained checkpoint to cpu to avoid issue with some pretrained checkpoints still having CUDA tensors. Fixes #42
5 years ago
Ross Wightman b93fcf0708 Add Facebook Research Semi-Supervised and Semi-Weakly Supervised ResNet model weights.
5 years ago
Ross Wightman a9eb484835 Add memory efficient Swish impl
5 years ago
rwightman d3ba34ee7e Fix Mobilenet V3 model name for sotabench. Minor res2net cleanup.
5 years ago
Ross Wightman 2680ad14bb Add Res2Net and DLA to README
5 years ago
rwightman adbf770f16 Add Res2Net and DLA models w/ pretrained weights. Update sotabench.
5 years ago
Ross Wightman 4002c0d4ce Fix AutoAugment abs translate calc
5 years ago
Ross Wightman c06274e5a2 Add note on random selection of magnitude value
5 years ago
Ross Wightman b750b76f67 More AutoAugment work. Ready to roll...
5 years ago
Ross Wightman 25d2088d9e Working on auto-augment
5 years ago
Ross Wightman aff194f42c
Merge pull request #32 from rwightman/opt
5 years ago
Ross Wightman 64966f61f7 Add Nvidia's NovogGrad impl from Jasper (cleaner/faster than current) and Apex Fused optimizers
5 years ago
Ross Wightman 3d9c8a6489 Add support for new AMP checkpointing support w/ amp.state_dict
5 years ago
Ross Wightman ba3c97c3ad Some Lookahead cleanup and fixes
5 years ago
Ross Wightman e9d2ec4d8e
Merge pull request #31 from rwightman/opt
5 years ago
Ross Wightman fac58f609a Add RAdam, NovoGrad, Lookahead, and AdamW optimizers, a few ResNet tweaks and scheduler factory tweak.
5 years ago
Ross Wightman 81875d52a6 Update sotabench model list, add Mean-Max pooling DPN variants, disable download progress
5 years ago
Ross Wightman f37e633e9b Merge remote-tracking branch 'origin/re-exp' into opt
5 years ago
Ross Wightman b06dce8d71 Bump version for next push to pypi
5 years ago
Ross Wightman 73fbd97ed4 Add weights for my MixNet-XL creation, include README updates for EdgeTPU models
5 years ago
Ross Wightman 51a2375b0c Experimenting with a custom MixNet-XL and MixNet-XXL definition
5 years ago
Ross Wightman 9ec6824bab Finally got around to adding EdgeTPU EfficientNet variant
5 years ago
Ross Wightman daeaa113e2 Add initial sotabench attempt. Split create_transform out of create_loader. Update requirements.txt
5 years ago
Ross Wightman 66634d2200 Add support to split random erasing blocks into randomly selected number with --recount arg. Fix random selection of aspect ratios.
5 years ago
Ross Wightman 6946281fde Experimenting with random erasing changes
5 years ago
Ross Wightman aeaaad7304
Merge pull request #24 from rwightman/gluon_xception
5 years ago
Ross Wightman 3b4868f6dc A few more additions to Gluon Xception models to match interface of others.
5 years ago
Ross Wightman 4d505e0785 Add working Gluon Xception-65 model. Some cleanup still needed.
5 years ago
Minqin Chen 4e7a854dd0
Update helpers.py
5 years ago
Ross Wightman 0c874195db Update results csv files, bump version for timm pip release
5 years ago
Ross Wightman 4fe2da558c Add MixNet Small and Large PyTorch native weights (no same padding)
5 years ago
Ross Wightman e879cf52fa Update validation scores for new TF EfficientNet weights.
5 years ago
Ross Wightman 77e2e0c4e3 Add new auto-augmentation Tensorflow EfficientNet weights, incl B6 and B7 models. Validation scores still pending but looking good.
5 years ago
Ross Wightman 857f33015a Add native PyTorch weights for MixNet-Medium with no SAME padding necessary. Remove unused block of code.
5 years ago
Ross Wightman e7c8a37334 Make min-lr and cooldown-epochs cmdline args, change dash in color_jitter arg for consistency
5 years ago
Ross Wightman d4debe6597 Update version, results csv files, and move remaining dropbox weights to github
5 years ago
Ross Wightman dfa9298b4e Add MixNet (https://arxiv.org/abs/1907.09595) with pretrained weights converted from Tensorflow impl
5 years ago
Ross Wightman 7a92caa560 Add basic image folder style dataset to read directly out of tar files, example in validate.py
5 years ago
Ross Wightman d6ac5bbc48 EfficientNet and related cleanup
5 years ago
Ross Wightman 3d9be78fc6 A bit more ResNet cleanup.
5 years ago
Ross Wightman 33436fafad Add weights for ResNeXt50d model
5 years ago
Ross Wightman e78cd79073 Move ResNet additions for Gluon into main ResNet impl. Add ResNet-26 and ResNet-26d models with weights.
5 years ago
Ross Wightman 6cdf35e670 Add explicit half/fp16 support to loader and validation script
5 years ago
Ross Wightman a6b2f6eca5 Update README, bump version
5 years ago
Ross Wightman 949b7a81c4 Fix typo in Densenet default resolutions
5 years ago
Ross Wightman da52fcf78a Add NASNet-Large model
5 years ago
Ross Wightman 6057496409 Register dpn107
5 years ago
Ross Wightman 3d1a66b6fc Version 0.1.6
5 years ago
Ross Wightman a6878b5218 Fix DPN config keys that I broke
5 years ago
Ross Wightman 9b0070edc9 Add two comments back, fix typo
5 years ago
Ross Wightman 188aeae8f4 Bump version 0.1.4
5 years ago
Ross Wightman c3287aafb3 Slight improvement in EfficientNet-B2 native PyTorch weights
5 years ago
Ross Wightman b8762cc67d Model updates. Add my best ResNet50 weights top-1=78.47. Add some other torchvision weights.
5 years ago
Ross Wightman 65a634626f Switch random erasing to doing normal_() on CPU to avoid instability, remove a debug print
5 years ago
Ross Wightman c6b32cbe73 A number of tweaks to arguments, epoch handling, config
5 years ago
Ross Wightman 9d653b68a2 Make drop_connect rate scaling match official impl. Fixes #14
5 years ago
Ross Wightman 13c19e213d Add native PyTorch EfficientNet B1 and B2 weights. Not quite where I want them, but hitting the brick wall and moving on to other projects...
5 years ago
Ross Wightman a0275cfa2f Fix arg positions in two entrypoint aliases
5 years ago
Ross Wightman fe59249701 Bump version to 0.1.2
5 years ago
Ross Wightman 171c0b88b6 Add model registry and model listing fns, refactor model_factory/create_model fn
5 years ago
Ross Wightman 8512436436 Add instagram pretrained ResNeXt models from https://pytorch.org/hub/facebookresearch_WSL-Images_resnext/, update README
5 years ago
Ross Wightman 87b92c528e Some pretrianed URL changes
5 years ago
Ross Wightman 827a3d6010 Add current checkpoints output back to CheckpointSaver (via logger)
5 years ago
Ross Wightman 63961b36a2 Missed pnasnet entrypoint
5 years ago
Ross Wightman 6cc214bd7a Consistency in model entrypoints
5 years ago
Ross Wightman 6fc886acaf Remove all prints, change most to logging calls, tweak alignment of batch logs, improve setup.py
5 years ago
Ross Wightman aa4354f466 Big re-org, working towards making pip/module as 'timm'
5 years ago