{ "info": { "author": "Remi Cadene", "author_email": "remi.cadene@icloud.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# Pretrained models for Pytorch (Work in progress)\n\nThe goal of this repo is:\n\n- to help to reproduce research papers results (transfer learning setups for instance),\n- to access pretrained ConvNets with a unique interface/API inspired by torchvision.\n\n\n\nNews:\n- 27/10/2018: Fix compatibility issues, Add tests, Add travis\n- 04/06/2018: [PolyNet](https://github.com/CUHK-MMLAB/polynet) and [PNASNet-5-Large](https://arxiv.org/abs/1712.00559) thanks to [Alex Parinov](https://github.com/creafz)\n- 16/04/2018: [SE-ResNet* and SE-ResNeXt*](https://github.com/hujie-frank/SENet) thanks to [Alex Parinov](https://github.com/creafz)\n- 09/04/2018: [SENet154](https://github.com/hujie-frank/SENet) thanks to [Alex Parinov](https://github.com/creafz)\n- 22/03/2018: CaffeResNet101 (good for localization with FasterRCNN)\n- 21/03/2018: NASNet Mobile thanks to [Veronika Yurchuk](https://github.com/veronikayurchuk) and [Anastasiia](https://github.com/DagnyT)\n- 25/01/2018: DualPathNetworks thanks to [Ross Wightman](https://github.com/rwightman/pytorch-dpn-pretrained), Xception thanks to [T Standley](https://github.com/tstandley/Xception-PyTorch), improved TransformImage API\n- 13/01/2018: `pip install pretrainedmodels`, `pretrainedmodels.model_names`, `pretrainedmodels.pretrained_settings`\n- 12/01/2018: `python setup.py install`\n- 08/12/2017: update data url (/!\\ `git pull` is needed)\n- 30/11/2017: improve API (`model.features(input)`, `model.logits(features)`, `model.forward(input)`, `model.last_linear`)\n- 16/11/2017: nasnet-a-large pretrained model ported by T. Durand and R. Cadene\n- 22/07/2017: torchvision pretrained models\n- 22/07/2017: momentum in inceptionv4 and inceptionresnetv2 to 0.1\n- 17/07/2017: model.input_range attribut\n- 17/07/2017: BNInception pretrained on Imagenet\n\n## Summary\n\n- [Installation](https://github.com/Cadene/pretrained-models.pytorch#installation)\n- [Quick examples](https://github.com/Cadene/pretrained-models.pytorch#quick-examples)\n- [Few use cases](https://github.com/Cadene/pretrained-models.pytorch#few-use-cases)\n - [Compute imagenet logits](https://github.com/Cadene/pretrained-models.pytorch#compute-imagenet-logits)\n - [Compute imagenet validation metrics](https://github.com/Cadene/pretrained-models.pytorch#compute-imagenet-validation-metrics)\n- [Evaluation on ImageNet](https://github.com/Cadene/pretrained-models.pytorch#evaluation-on-imagenet)\n - [Accuracy on valset](https://github.com/Cadene/pretrained-models.pytorch#accuracy-on-validation-set)\n - [Reproducing results](https://github.com/Cadene/pretrained-models.pytorch#reproducing-results)\n- [Documentation](https://github.com/Cadene/pretrained-models.pytorch#documentation)\n - [Available models](https://github.com/Cadene/pretrained-models.pytorch#available-models)\n - [AlexNet](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [BNInception](https://github.com/Cadene/pretrained-models.pytorch#bninception)\n - [CaffeResNet101](https://github.com/Cadene/pretrained-models.pytorch#caffe-resnet)\n - [DenseNet121](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [DenseNet161](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [DenseNet169](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [DenseNet201](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [DenseNet201](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [DualPathNet68](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks)\n - [DualPathNet92](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks)\n - [DualPathNet98](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks)\n - [DualPathNet107](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks)\n - [DualPathNet113](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks)\n - [FBResNet152](https://github.com/Cadene/pretrained-models.pytorch#facebook-resnet)\n - [InceptionResNetV2](https://github.com/Cadene/pretrained-models.pytorch#inception)\n - [InceptionV3](https://github.com/Cadene/pretrained-models.pytorch#inception)\n - [InceptionV4](https://github.com/Cadene/pretrained-models.pytorch#inception)\n - [NASNet-A-Large](https://github.com/Cadene/pretrained-models.pytorch#nasnet)\n - [NASNet-A-Mobile](https://github.com/Cadene/pretrained-models.pytorch#nasnet)\n - [PNASNet-5-Large](https://github.com/Cadene/pretrained-models.pytorch#pnasnet)\n - [PolyNet](https://github.com/Cadene/pretrained-models.pytorch#polynet)\n - [ResNeXt101_32x4d](https://github.com/Cadene/pretrained-models.pytorch#resnext)\n - [ResNeXt101_64x4d](https://github.com/Cadene/pretrained-models.pytorch#resnext)\n - [ResNet101](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [ResNet152](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [ResNet18](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [ResNet34](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [ResNet50](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [SENet154](https://github.com/Cadene/pretrained-models.pytorch#senet)\n - [SE-ResNet50](https://github.com/Cadene/pretrained-models.pytorch#senet)\n - [SE-ResNet101](https://github.com/Cadene/pretrained-models.pytorch#senet)\n - [SE-ResNet152](https://github.com/Cadene/pretrained-models.pytorch#senet)\n - [SE-ResNeXt50_32x4d](https://github.com/Cadene/pretrained-models.pytorch#senet)\n - [SE-ResNeXt101_32x4d](https://github.com/Cadene/pretrained-models.pytorch#senet)\n - [SqueezeNet1_0](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [SqueezeNet1_1](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG11](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG13](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG16](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG19](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG11_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG13_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG16_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [VGG19_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision)\n - [Xception](https://github.com/Cadene/pretrained-models.pytorch#xception)\n - [Model API](https://github.com/Cadene/pretrained-models.pytorch#model-api)\n - [model.input_size](https://github.com/Cadene/pretrained-models.pytorch#modelinput_size)\n - [model.input_space](https://github.com/Cadene/pretrained-models.pytorch#modelinput_space)\n - [model.input_range](https://github.com/Cadene/pretrained-models.pytorch#modelinput_range)\n - [model.mean](https://github.com/Cadene/pretrained-models.pytorch#modelmean)\n - [model.std](https://github.com/Cadene/pretrained-models.pytorch#modelstd)\n - [model.features](https://github.com/Cadene/pretrained-models.pytorch#modelfeatures)\n - [model.logits](https://github.com/Cadene/pretrained-models.pytorch#modellogits)\n - [model.forward](https://github.com/Cadene/pretrained-models.pytorch#modelforward)\n- [Reproducing porting](https://github.com/Cadene/pretrained-models.pytorch#reproducing)\n - [ResNet*](https://github.com/Cadene/pretrained-models.pytorch#hand-porting-of-resnet152)\n - [ResNeXt*](https://github.com/Cadene/pretrained-models.pytorch#automatic-porting-of-resnext)\n - [Inception*](https://github.com/Cadene/pretrained-models.pytorch#hand-porting-of-inceptionv4-and-inceptionresnetv2)\n\n## Installation\n\n1. [python3 with anaconda](https://www.continuum.io/downloads)\n2. [pytorch with/out CUDA](http://pytorch.org)\n\n### Install from pip\n\n3. `pip install pretrainedmodels`\n\n### Install from repo\n\n3. `git clone https://github.com/Cadene/pretrained-models.pytorch.git`\n4. `cd pretrained-models.pytorch`\n5. `python setup.py install`\n\n\n## Quick examples\n\n- To import `pretrainedmodels`:\n\n```python\nimport pretrainedmodels\n```\n\n- To print the available pretrained models:\n\n```python\nprint(pretrainedmodels.model_names)\n> ['fbresnet152', 'bninception', 'resnext101_32x4d', 'resnext101_64x4d', 'inceptionv4', 'inceptionresnetv2', 'alexnet', 'densenet121', 'densenet169', 'densenet201', 'densenet161', 'resnet18', 'resnet34', 'resnet50', 'resnet101', 'resnet152', 'inceptionv3', 'squeezenet1_0', 'squeezenet1_1', 'vgg11', 'vgg11_bn', 'vgg13', 'vgg13_bn', 'vgg16', 'vgg16_bn', 'vgg19_bn', 'vgg19', 'nasnetalarge', 'nasnetamobile', 'cafferesnet101', 'senet154', 'se_resnet50', 'se_resnet101', 'se_resnet152', 'se_resnext50_32x4d', 'se_resnext101_32x4d', 'cafferesnet101', 'polynet', 'pnasnet5large']\n```\n\n- To print the available pretrained settings for a chosen model:\n\n```python\nprint(pretrainedmodels.pretrained_settings['nasnetalarge'])\n> {'imagenet': {'url': 'http://data.lip6.fr/cadene/pretrainedmodels/nasnetalarge-a1897284.pth', 'input_space': 'RGB', 'input_size': [3, 331, 331], 'input_range': [0, 1], 'mean': [0.5, 0.5, 0.5], 'std': [0.5, 0.5, 0.5], 'num_classes': 1000}, 'imagenet+background': {'url': 'http://data.lip6.fr/cadene/pretrainedmodels/nasnetalarge-a1897284.pth', 'input_space': 'RGB', 'input_size': [3, 331, 331], 'input_range': [0, 1], 'mean': [0.5, 0.5, 0.5], 'std': [0.5, 0.5, 0.5], 'num_classes': 1001}}\n```\n\n- To load a pretrained models from imagenet:\n\n```python\nmodel_name = 'nasnetalarge' # could be fbresnet152 or inceptionresnetv2\nmodel = pretrainedmodels.__dict__[model_name](num_classes=1000, pretrained='imagenet')\nmodel.eval()\n```\n\n**Note**: By default, models will be downloaded to your `$HOME/.torch` folder. You can modify this behavior using the `$TORCH_MODEL_ZOO` variable as follow: `export TORCH_MODEL_ZOO=\"/local/pretrainedmodels`\n\n- To load an image and do a complete forward pass:\n\n```python\nimport torch\nimport pretrainedmodels.utils as utils\n\nload_img = utils.LoadImage()\n\n# transformations depending on the model\n#\u00a0rescale, center crop, normalize, and others (ex: ToBGR, ToRange255)\ntf_img = utils.TransformImage(model) \n\npath_img = 'data/cat.jpg'\n\ninput_img = load_img(path_img)\ninput_tensor = tf_img(input_img) # 3x400x225 -> 3x299x299 size may differ\ninput_tensor = input_tensor.unsqueeze(0) # 3x299x299 -> 1x3x299x299\ninput = torch.autograd.Variable(input_tensor,\n requires_grad=False)\n\noutput_logits = model(input) # 1x1000\n```\n\n- To extract features (beware this API is not available for all networks):\n\n```python\noutput_features = model.features(input) # 1x14x14x2048 size may differ\noutput_logits = model.logits(output_features) # 1x1000\n```\n\n## Few use cases\n\n### Compute imagenet logits\n\n- See [examples/imagenet_logits.py](https://github.com/Cadene/pretrained-models.pytorch/blob/master/examples/imagenet_logits.py) to compute logits of classes appearance over a single image with a pretrained model on imagenet.\n\n```\n$ python examples/imagenet_logits.py -h\n> nasnetalarge, resnet152, inceptionresnetv2, inceptionv4, ...\n```\n\n```\n$ python examples/imagenet_logits.py -a nasnetalarge --path_img data/cat.png\n> 'nasnetalarge': data/cat.png' is a 'tiger cat' \n```\n\n### Compute imagenet evaluation metrics\n\n- See [examples/imagenet_eval.py](https://github.com/Cadene/pretrained-models.pytorch/blob/master/examples/imagenet_eval.py) to evaluate pretrained models on imagenet valset. \n\n```\n$ python examples/imagenet_eval.py /local/common-data/imagenet_2012/images -a nasnetalarge -b 20 -e\n> * Acc@1 92.693, Acc@5 96.13\n```\n\n\n## Evaluation on imagenet\n\n### Accuracy on validation set (single model)\n\nResults were obtained using (center cropped) images of the same size than during the training process.\n\nModel | Version | Acc@1 | Acc@5\n--- | --- | --- | ---\nPNASNet-5-Large | [Tensorflow](https://github.com/tensorflow/models/tree/master/research/slim) | 82.858 | 96.182\n[PNASNet-5-Large](https://github.com/Cadene/pretrained-models.pytorch#pnasnet) | Our porting | 82.736 | 95.992\nNASNet-A-Large | [Tensorflow](https://github.com/tensorflow/models/tree/master/research/slim) | 82.693 | 96.163\n[NASNet-A-Large](https://github.com/Cadene/pretrained-models.pytorch#nasnet) | Our porting | 82.566 | 96.086\nSENet154 | [Caffe](https://github.com/hujie-frank/SENet) | 81.32 | 95.53\n[SENet154](https://github.com/Cadene/pretrained-models.pytorch#senet) | Our porting | 81.304 | 95.498\nPolyNet | [Caffe](https://github.com/CUHK-MMLAB/polynet) | 81.29 | 95.75\n[PolyNet](https://github.com/Cadene/pretrained-models.pytorch#polynet) | Our porting | 81.002 | 95.624\nInceptionResNetV2 | [Tensorflow](https://github.com/tensorflow/models/tree/master/slim) | 80.4 | 95.3\nInceptionV4 | [Tensorflow](https://github.com/tensorflow/models/tree/master/slim) | 80.2 | 95.3\n[SE-ResNeXt101_32x4d](https://github.com/Cadene/pretrained-models.pytorch#senet) | Our porting | 80.236 | 95.028\nSE-ResNeXt101_32x4d | [Caffe](https://github.com/hujie-frank/SENet) | 80.19 | 95.04\n[InceptionResNetV2](https://github.com/Cadene/pretrained-models.pytorch#inception) | Our porting | 80.170 | 95.234\n[InceptionV4](https://github.com/Cadene/pretrained-models.pytorch#inception) | Our porting | 80.062 | 94.926\n[DualPathNet107_5k](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks) | Our porting | 79.746 | 94.684\nResNeXt101_64x4d | [Torch7](https://github.com/facebookresearch/ResNeXt) | 79.6 | 94.7\n[DualPathNet131](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks) | Our porting | 79.432 | 94.574\n[DualPathNet92_5k](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks) | Our porting | 79.400 | 94.620\n[DualPathNet98](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks) | Our porting | 79.224 | 94.488\n[SE-ResNeXt50_32x4d](https://github.com/Cadene/pretrained-models.pytorch#senet) | Our porting | 79.076 | 94.434\nSE-ResNeXt50_32x4d | [Caffe](https://github.com/hujie-frank/SENet) | 79.03 | 94.46\n[Xception](https://github.com/Cadene/pretrained-models.pytorch#xception) | [Keras](https://github.com/keras-team/keras/blob/master/keras/applications/xception.py) | 79.000 | 94.500\n[ResNeXt101_64x4d](https://github.com/Cadene/pretrained-models.pytorch#resnext) | Our porting | 78.956 | 94.252\n[Xception](https://github.com/Cadene/pretrained-models.pytorch#xception) | Our porting | 78.888 | 94.292\nResNeXt101_32x4d | [Torch7](https://github.com/facebookresearch/ResNeXt) | 78.8 | 94.4\nSE-ResNet152 | [Caffe](https://github.com/hujie-frank/SENet) | 78.66 | 94.46\n[SE-ResNet152](https://github.com/Cadene/pretrained-models.pytorch#senet) | Our porting | 78.658 | 94.374\nResNet152 | [Pytorch](https://github.com/pytorch/vision#models) | 78.428 | 94.110\n[SE-ResNet101](https://github.com/Cadene/pretrained-models.pytorch#senet) | Our porting | 78.396 | 94.258\nSE-ResNet101 | [Caffe](https://github.com/hujie-frank/SENet) | 78.25 | 94.28\n[ResNeXt101_32x4d](https://github.com/Cadene/pretrained-models.pytorch#resnext) | Our porting | 78.188 | 93.886\nFBResNet152 | [Torch7](https://github.com/facebook/fb.resnet.torch) | 77.84 | 93.84\nSE-ResNet50 | [Caffe](https://github.com/hujie-frank/SENet) | 77.63 | 93.64\n[SE-ResNet50](https://github.com/Cadene/pretrained-models.pytorch#senet) | Our porting | 77.636 | 93.752\n[DenseNet161](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 77.560 | 93.798\n[ResNet101](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 77.438 | 93.672\n[FBResNet152](https://github.com/Cadene/pretrained-models.pytorch#facebook-resnet) | Our porting | 77.386 | 93.594\n[InceptionV3](https://github.com/Cadene/pretrained-models.pytorch#inception) | [Pytorch](https://github.com/pytorch/vision#models) | 77.294 | 93.454\n[DenseNet201](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 77.152 | 93.548\n[DualPathNet68b_5k](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks) | Our porting | 77.034 | 93.590\n[CaffeResnet101](https://github.com/Cadene/pretrained-models.pytorch#caffe-resnet) | [Caffe](https://github.com/KaimingHe/deep-residual-networks) | 76.400 | 92.900\n[CaffeResnet101](https://github.com/Cadene/pretrained-models.pytorch#caffe-resnet) | Our porting | 76.200 | 92.766\n[DenseNet169](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 76.026 | 92.992\n[ResNet50](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 76.002 | 92.980\n[DualPathNet68](https://github.com/Cadene/pretrained-models.pytorch#dualpathnetworks) | Our porting | 75.868 | 92.774\n[DenseNet121](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 74.646 | 92.136\n[VGG19_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 74.266 | 92.066\nNASNet-A-Mobile | [Tensorflow](https://github.com/tensorflow/models/tree/master/research/slim) | 74.0 | 91.6\n[NASNet-A-Mobile](https://github.com/veronikayurchuk/pretrained-models.pytorch/blob/master/pretrainedmodels/models/nasnet_mobile.py) | Our porting | 74.080 | 91.740\n[ResNet34](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 73.554 | 91.456\n[BNInception](https://github.com/Cadene/pretrained-models.pytorch#bninception) | Our porting | 73.524 | 91.562\n[VGG16_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 73.518 | 91.608\n[VGG19](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 72.080 | 90.822\n[VGG16](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 71.636 | 90.354\n[VGG13_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 71.508 | 90.494\n[VGG11_BN](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 70.452 | 89.818\n[ResNet18](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 70.142 | 89.274\n[VGG13](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 69.662 | 89.264\n[VGG11](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 68.970 | 88.746\n[SqueezeNet1_1](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 58.250 | 80.800\n[SqueezeNet1_0](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 58.108 | 80.428\n[Alexnet](https://github.com/Cadene/pretrained-models.pytorch#torchvision) | [Pytorch](https://github.com/pytorch/vision#models) | 56.432 | 79.194\n\nNotes:\n- the Pytorch version of ResNet152 is not a porting of the Torch7 but has been retrained by facebook.\n- For the PolyNet evaluation each image was resized to 378x378 without preserving the aspect ratio and then the central 331\u00d7331 patch from the resulting image was used.\n\nBeware, the accuracy reported here is not always representative of the transferable capacity of the network on other tasks and datasets. You must try them all! :P\n \n### Reproducing results\n\nPlease see [Compute imagenet validation metrics](https://github.com/Cadene/pretrained-models.pytorch#compute-imagenet-validation-metrics)\n\n\n## Documentation\n\n### Available models\n\n#### NASNet*\n\nSource: [TensorFlow Slim repo](https://github.com/tensorflow/models/tree/master/research/slim)\n\n- `nasnetalarge(num_classes=1000, pretrained='imagenet')`\n- `nasnetalarge(num_classes=1001, pretrained='imagenet+background')`\n- `nasnetamobile(num_classes=1000, pretrained='imagenet')`\n\n#### FaceBook ResNet*\n\nSource: [Torch7 repo of FaceBook](https://github.com/facebook/fb.resnet.torch)\n\nThere are a bit different from the ResNet* of torchvision. ResNet152 is currently the only one available.\n\n- `fbresnet152(num_classes=1000, pretrained='imagenet')`\n\n#### Caffe ResNet*\n\nSource: [Caffe repo of KaimingHe](https://github.com/KaimingHe/deep-residual-networks)\n\n- `cafferesnet101(num_classes=1000, pretrained='imagenet')`\n\n\n#### Inception*\n\nSource: [TensorFlow Slim repo](https://github.com/tensorflow/models/tree/master/slim) and [Pytorch/Vision repo](https://github.com/pytorch/vision/tree/master/torchvision) for `inceptionv3`\n\n- `inceptionresnetv2(num_classes=1000, pretrained='imagenet')`\n- `inceptionresnetv2(num_classes=1001, pretrained='imagenet+background')`\n- `inceptionv4(num_classes=1000, pretrained='imagenet')`\n- `inceptionv4(num_classes=1001, pretrained='imagenet+background')`\n- `inceptionv3(num_classes=1000, pretrained='imagenet')`\n\n#### BNInception\n\nSource: [Trained with Caffe](https://github.com/Cadene/tensorflow-model-zoo.torch/pull/2) by [Xiong Yuanjun](http://yjxiong.me)\n\n- `bninception(num_classes=1000, pretrained='imagenet')`\n\n#### ResNeXt*\n\nSource: [ResNeXt repo of FaceBook](https://github.com/facebookresearch/ResNeXt)\n\n- `resnext101_32x4d(num_classes=1000, pretrained='imagenet')`\n- `resnext101_62x4d(num_classes=1000, pretrained='imagenet')`\n\n#### DualPathNetworks\n\nSource: [MXNET repo of Chen Yunpeng](https://github.com/cypw/DPNs)\n\nThe porting has been made possible by [Ross Wightman](http://rwightman.com) in his [PyTorch repo](https://github.com/rwightman/pytorch-dpn-pretrained).\n\nAs you can see [here](https://github.com/rwightman/pytorch-dpn-pretrained) DualPathNetworks allows you to try different scales. The default one in this repo is 0.875 meaning that the original input size is 256 before croping to 224.\n\n- `dpn68(num_classes=1000, pretrained='imagenet')`\n- `dpn98(num_classes=1000, pretrained='imagenet')`\n- `dpn131(num_classes=1000, pretrained='imagenet')`\n- `dpn68b(num_classes=1000, pretrained='imagenet+5k')`\n- `dpn92(num_classes=1000, pretrained='imagenet+5k')`\n- `dpn107(num_classes=1000, pretrained='imagenet+5k')`\n\n`'imagenet+5k'` means that the network has been pretrained on imagenet5k before being finetuned on imagenet1k.\n\n#### Xception\n\nSource: [Keras repo](https://github.com/keras-team/keras/blob/master/keras/applications/xception.py)\n\nThe porting has been made possible by [T Standley](https://github.com/tstandley/Xception-PyTorch).\n\n- `xception(num_classes=1000, pretrained='imagenet')`\n\n\n#### SENet*\n\nSource: [Caffe repo of Jie Hu](https://github.com/hujie-frank/SENet)\n\n- `senet154(num_classes=1000, pretrained='imagenet')`\n- `se_resnet50(num_classes=1000, pretrained='imagenet')`\n- `se_resnet101(num_classes=1000, pretrained='imagenet')`\n- `se_resnet152(num_classes=1000, pretrained='imagenet')`\n- `se_resnext50_32x4d(num_classes=1000, pretrained='imagenet')`\n- `se_resnext101_32x4d(num_classes=1000, pretrained='imagenet')`\n\n#### PNASNet*\n\nSource: [TensorFlow Slim repo](https://github.com/tensorflow/models/tree/master/research/slim)\n\n- `pnasnet5large(num_classes=1000, pretrained='imagenet')`\n- `pnasnet5large(num_classes=1001, pretrained='imagenet+background')`\n\n#### PolyNet\n\nSource: [Caffe repo of the CUHK Multimedia Lab](https://github.com/CUHK-MMLAB/polynet)\n\n- `polynet(num_classes=1000, pretrained='imagenet')`\n\n#### TorchVision\n\nSource: [Pytorch/Vision repo](https://github.com/pytorch/vision/tree/master/torchvision)\n\n(`inceptionv3` included in [Inception*](https://github.com/Cadene/pretrained-models.pytorch#inception))\n\n- `resnet18(num_classes=1000, pretrained='imagenet')`\n- `resnet34(num_classes=1000, pretrained='imagenet')`\n- `resnet50(num_classes=1000, pretrained='imagenet')`\n- `resnet101(num_classes=1000, pretrained='imagenet')`\n- `resnet152(num_classes=1000, pretrained='imagenet')`\n- `densenet121(num_classes=1000, pretrained='imagenet')`\n- `densenet161(num_classes=1000, pretrained='imagenet')`\n- `densenet169(num_classes=1000, pretrained='imagenet')`\n- `densenet201(num_classes=1000, pretrained='imagenet')`\n- `squeezenet1_0(num_classes=1000, pretrained='imagenet')`\n- `squeezenet1_1(num_classes=1000, pretrained='imagenet')`\n- `alexnet(num_classes=1000, pretrained='imagenet')`\n- `vgg11(num_classes=1000, pretrained='imagenet')`\n- `vgg13(num_classes=1000, pretrained='imagenet')`\n- `vgg16(num_classes=1000, pretrained='imagenet')`\n- `vgg19(num_classes=1000, pretrained='imagenet')`\n- `vgg11_bn(num_classes=1000, pretrained='imagenet')`\n- `vgg13_bn(num_classes=1000, pretrained='imagenet')`\n- `vgg16_bn(num_classes=1000, pretrained='imagenet')`\n- `vgg19_bn(num_classes=1000, pretrained='imagenet')`\n\n\n### Model API\n\nOnce a pretrained model has been loaded, you can use it that way.\n\n**Important note**: All image must be loaded using `PIL` which scales the pixel values between 0 and 1.\n\n#### `model.input_size`\n\nAttribut of type `list` composed of 3 numbers:\n\n- number of color channels,\n- height of the input image,\n- width of the input image.\n\nExample:\n\n- `[3, 299, 299]` for inception* networks,\n- `[3, 224, 224]` for resnet* networks.\n\n\n#### `model.input_space`\n\nAttribut of type `str` representating the color space of the image. Can be `RGB` or `BGR`.\n\n\n#### `model.input_range`\n\nAttribut of type `list` composed of 2 numbers:\n\n- min pixel value,\n- max pixel value.\n\nExample:\n\n- `[0, 1]` for resnet* and inception* networks,\n- `[0, 255]` for bninception network.\n\n\n#### `model.mean`\n\nAttribut of type `list` composed of 3 numbers which are used to normalize the input image (substract \"color-channel-wise\").\n\nExample:\n\n- `[0.5, 0.5, 0.5]` for inception* networks,\n- `[0.485, 0.456, 0.406]` for resnet* networks.\n\n\n#### `model.std`\n\nAttribut of type `list` composed of 3 numbers which are used to normalize the input image (divide \"color-channel-wise\").\n\nExample:\n\n- `[0.5, 0.5, 0.5]` for inception* networks,\n- `[0.229, 0.224, 0.225]` for resnet* networks.\n\n\n#### `model.features`\n\n/!\\ work in progress (may not be available)\n\nMethod which is used to extract the features from the image.\n\nExample when the model is loaded using `fbresnet152`:\n\n```python\nprint(input_224.size()) # (1,3,224,224)\noutput = model.features(input_224) \nprint(output.size()) # (1,2048,1,1)\n\n# print(input_448.size()) # (1,3,448,448)\noutput = model.features(input_448)\n# print(output.size()) # (1,2048,7,7)\n```\n\n#### `model.logits`\n\n/!\\ work in progress (may not be available)\n\nMethod which is used to classify the features from the image.\n\nExample when the model is loaded using `fbresnet152`:\n\n```python\noutput = model.features(input_224) \nprint(output.size()) # (1,2048, 1, 1)\noutput = model.logits(output)\nprint(output.size()) # (1,1000)\n```\n\n#### `model.forward`\n\nMethod used to call `model.features` and `model.logits`. It can be overwritten as desired.\n\n**Note**: A good practice is to use `model.__call__` as your function of choice to forward an input to your model. See the example bellow.\n\n```python\n# Without model.__call__\noutput = model.forward(input_224)\nprint(output.size()) # (1,1000)\n\n# With model.__call__\noutput = model(input_224)\nprint(output.size()) # (1,1000)\n```\n\n#### `model.last_linear`\n\nAttribut of type `nn.Linear`. This module is the last one to be called during the forward pass.\n\n- Can be replaced by an adapted `nn.Linear` for fine tuning.\n- Can be replaced by `pretrained.utils.Identity` for features extraction. \n\nExample when the model is loaded using `fbresnet152`:\n\n```python\nprint(input_224.size()) # (1,3,224,224)\noutput = model.features(input_224) \nprint(output.size()) # (1,2048,1,1)\noutput = model.logits(output)\nprint(output.size()) # (1,1000)\n\n# fine tuning\ndim_feats = model.last_linear.in_features # =2048\nnb_classes = 4\nmodel.last_linear = nn.Linear(dim_feats, nb_classes)\noutput = model(input_224)\nprint(output.size()) # (1,4)\n\n# features extraction\nmodel.last_linear = pretrained.utils.Identity()\noutput = model(input_224)\nprint(output.size()) # (1,2048)\n```\n\n## Reproducing\n\n### Hand porting of ResNet152\n\n```\nth pretrainedmodels/fbresnet/resnet152_dump.lua\npython pretrainedmodels/fbresnet/resnet152_load.py\n```\n\n### Automatic porting of ResNeXt\n\nhttps://github.com/clcarwin/convert_torch_to_pytorch\n\n### Hand porting of NASNet, InceptionV4 and InceptionResNetV2\n\nhttps://github.com/Cadene/tensorflow-model-zoo.torch\n\n\n## Acknowledgement\n\nThanks to the deep learning community and especially to the contributers of the pytorch ecosystem.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cadene/pretrained-models.pytorch", "keywords": "pytorch pretrained models deep learning", "license": "", "maintainer": "", "maintainer_email": "", "name": "pretrainedmodels", "package_url": "https://pypi.org/project/pretrainedmodels/", "platform": "", "project_url": "https://pypi.org/project/pretrainedmodels/", "project_urls": { "Homepage": "https://github.com/cadene/pretrained-models.pytorch" }, "release_url": "https://pypi.org/project/pretrainedmodels/0.7.4/", "requires_dist": null, "requires_python": "", "summary": "Pretrained models for Pytorch", "version": "0.7.4" }, "last_serial": 4426643, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2e82824ced3d949b61867cf40c6bb39f", "sha256": "90014ed81d3ccc0dacfb02a21855b62cccf63bac2daca17aa8d868f354d668bb" }, "downloads": -1, "filename": "pretrainedmodels-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2e82824ced3d949b61867cf40c6bb39f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32040, "upload_time": "2018-01-13T11:21:24", "url": "https://files.pythonhosted.org/packages/31/f3/859a250f23bfa4474d4f7ed81afaef7e337d98aeb803fdd439f589004514/pretrainedmodels-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "90378444c841414cc3c0f607da469440", "sha256": "7dda890335f72bc4c1831cbfe4fff8df1c49836d9e85872c4ea05c85f76ea69a" }, "downloads": -1, "filename": "pretrainedmodels-0.1.1.tar.gz", "has_sig": false, "md5_digest": "90378444c841414cc3c0f607da469440", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32311, "upload_time": "2018-01-13T12:00:30", "url": "https://files.pythonhosted.org/packages/7c/c6/9d3391000a05a45b5e0720e83cb10049dac92a87d1dce132f837f843e30c/pretrainedmodels-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9bef5d4eed6d2ddbfcf9f2880e98710d", "sha256": "f0e22101b2e57131be8f509d7be7fc8b4df8dc4c39c46ba380c3a1e1366986a9" }, "downloads": -1, "filename": "pretrainedmodels-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9bef5d4eed6d2ddbfcf9f2880e98710d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32492, "upload_time": "2018-01-17T15:05:22", "url": "https://files.pythonhosted.org/packages/e3/0a/de0622eed9085bae5191dfe42ebe694e3ad7899f9dad0e662d39987859e6/pretrainedmodels-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "78ac3f04718e5315260e6f9ed127d115", "sha256": "efa61cdf0f7ae684ed79919194ac3eb89a4dcedda6814902d322c516c615300b" }, "downloads": -1, "filename": "pretrainedmodels-0.2.0.tar.gz", "has_sig": false, "md5_digest": "78ac3f04718e5315260e6f9ed127d115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42073, "upload_time": "2018-01-25T19:53:01", "url": "https://files.pythonhosted.org/packages/b6/47/7888e31c2015f2c513b25fd6a005435c2a63f5a63271d41c9f6475d0d2cc/pretrainedmodels-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "4bccd1b890c6055886a16a91558ef766", "sha256": "b08ab4120e79425ec43e3524d6061c025e0a3b84995aa377f418b8e893b43124" }, "downloads": -1, "filename": "pretrainedmodels-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4bccd1b890c6055886a16a91558ef766", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42084, "upload_time": "2018-02-09T22:59:20", "url": "https://files.pythonhosted.org/packages/69/3b/b72fcc66e2e371a76e2bdda214b3caa38948379d3668562f65c8d85815ee/pretrainedmodels-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d4fd83246fdb2cc7a398ee933f569db6", "sha256": "e747db6b3e7b7d48a0c5919b586ad4a5f22e4db0ec7be1fa5bf8ae43a24e28b7" }, "downloads": -1, "filename": "pretrainedmodels-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d4fd83246fdb2cc7a398ee933f569db6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45617, "upload_time": "2018-03-21T13:40:31", "url": "https://files.pythonhosted.org/packages/3d/28/0a70e620c57fe01d76e4d58d021b863f2368b58d732d22ed11eac5f43547/pretrainedmodels-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "67bbe023ecab266c6068a2559410bb77", "sha256": "785309176a449a2478be52ccec1d2cfac03df9b204be20924f5db2eb203f8beb" }, "downloads": -1, "filename": "pretrainedmodels-0.4.0.tar.gz", "has_sig": false, "md5_digest": "67bbe023ecab266c6068a2559410bb77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46909, "upload_time": "2018-03-22T17:30:21", "url": "https://files.pythonhosted.org/packages/15/88/fff000a48552aa10e51e664c943b634f2ce0b84ac15e157aebfba60990ef/pretrainedmodels-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ba20f68293c2e7945d3c55e21e704d3c", "sha256": "fdc3ffb02d1456cf5756c0052e07cbfa6cf0321db63650e3ecee75a621c9ec17" }, "downloads": -1, "filename": "pretrainedmodels-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ba20f68293c2e7945d3c55e21e704d3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46918, "upload_time": "2018-03-29T07:59:06", "url": "https://files.pythonhosted.org/packages/96/ed/33ace0f22fdbc38e05c030da78cc9f29fb88e8d70c8059d7da93e5d4c354/pretrainedmodels-0.4.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "1d78d72b80f2af450bc981ecc66e2df4", "sha256": "1a649b35210527b22455a647b523d9c1c9f6460b602fcb1a5bdbe2a3a3b6319f" }, "downloads": -1, "filename": "pretrainedmodels-0.6.0.tar.gz", "has_sig": false, "md5_digest": "1d78d72b80f2af450bc981ecc66e2df4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51636, "upload_time": "2018-04-16T08:21:57", "url": "https://files.pythonhosted.org/packages/1c/d7/912a5c60f9403150f49b9a80db91bf7f93619bca4d1a6aa1a676002d86bd/pretrainedmodels-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "b3d8f1fde60f9bdf3794ad69ed40ec43", "sha256": "c17823f300b4e8506e24dd6dc63d0bd5eafa452b173173603958afe4462a2859" }, "downloads": -1, "filename": "pretrainedmodels-0.6.1-py3.6.egg", "has_sig": false, "md5_digest": "b3d8f1fde60f9bdf3794ad69ed40ec43", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 124631, "upload_time": "2018-10-27T13:40:34", "url": "https://files.pythonhosted.org/packages/6b/88/4e5c104e582d08d772472d20995b6c10cb64f8e72627f7115a7a471e3821/pretrainedmodels-0.6.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "4065b200f300d36b60d98004d21c688b", "sha256": "21530f4e5b0c155ff742f1158b74aa4e49d8fcf1b76bdd3e2c6e7ccda8cb8caf" }, "downloads": -1, "filename": "pretrainedmodels-0.6.1.tar.gz", "has_sig": false, "md5_digest": "4065b200f300d36b60d98004d21c688b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51691, "upload_time": "2018-05-05T21:38:28", "url": "https://files.pythonhosted.org/packages/5d/d1/d4d94807b792c32b43907e9a43f045635194e0d8836146beeb3838ae660d/pretrainedmodels-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "c4c2e232314f59d900a5965824a3bc34", "sha256": "61bf5d67c406bb208b9ffe1474dfeb6ef474cba69868ea884b46d5795ef67d21" }, "downloads": -1, "filename": "pretrainedmodels-0.6.2-py3.6.egg", "has_sig": false, "md5_digest": "c4c2e232314f59d900a5965824a3bc34", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 141334, "upload_time": "2018-10-27T13:40:37", "url": "https://files.pythonhosted.org/packages/7d/9f/75881343c91976d2d6c0846d8d5d09f883acf589ab7764d0dc23b276a1b3/pretrainedmodels-0.6.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "3d344a54605c7bab53c30ea714f527e4", "sha256": "f44445c108817c88cd1e403db4c80c0e3dee98de5241cc71ed91e8a2451a3dc8" }, "downloads": -1, "filename": "pretrainedmodels-0.6.2.tar.gz", "has_sig": false, "md5_digest": "3d344a54605c7bab53c30ea714f527e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51696, "upload_time": "2018-05-08T16:06:56", "url": "https://files.pythonhosted.org/packages/d5/9d/64d836502f766fe909a2bfd7859a918d7f5dca187b772ddd547768a07f16/pretrainedmodels-0.6.2.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "eeadc67b602575ef66f556e2778e8c7d", "sha256": "ed0e01978d0b1d7a403ed7d45b522fcdbbfef66d19580af09f37a29ebbfa410a" }, "downloads": -1, "filename": "pretrainedmodels-0.7.0.tar.gz", "has_sig": false, "md5_digest": "eeadc67b602575ef66f556e2778e8c7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57727, "upload_time": "2018-06-04T06:11:19", "url": "https://files.pythonhosted.org/packages/82/7d/ad85cb1b944c8e39416f2dfb1d7acc0cb3e34f11e9468f136e69b8ced89c/pretrainedmodels-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "585f3464e44d0e47334bfaa61e3aa424", "sha256": "84fc762703b3192478912eac2ce096b43e3a7c3aaee5a3c2250f3c0492fd9ebe" }, "downloads": -1, "filename": "pretrainedmodels-0.7.1.tar.gz", "has_sig": false, "md5_digest": "585f3464e44d0e47334bfaa61e3aa424", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58529, "upload_time": "2018-10-27T13:40:41", "url": "https://files.pythonhosted.org/packages/33/d1/bf594112a087431632ba3a6a1b6e4b1efb6049450e3604fc0f3796449b02/pretrainedmodels-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "c0ece1e252f2168aa302dd1aebefe8fd", "sha256": "9c5e1c344b838225ec648e6ee458037f6e439dffc9da0420aff1020da8ce9f95" }, "downloads": -1, "filename": "pretrainedmodels-0.7.2.tar.gz", "has_sig": false, "md5_digest": "c0ece1e252f2168aa302dd1aebefe8fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55899, "upload_time": "2018-10-27T15:50:08", "url": "https://files.pythonhosted.org/packages/47/06/e53bdc445a00ab5e6101cca6d37126a06ccbf23658d84038be7ed676fac8/pretrainedmodels-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "737bd0bb6d704a10c2d3f817a2bd1ac9", "sha256": "a783bcd083dda8ab24e5f5bf0c61fbd84628cef31c7577b4ae048990c773c550" }, "downloads": -1, "filename": "pretrainedmodels-0.7.3.tar.gz", "has_sig": false, "md5_digest": "737bd0bb6d704a10c2d3f817a2bd1ac9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58564, "upload_time": "2018-10-27T18:51:05", "url": "https://files.pythonhosted.org/packages/7e/f6/d97609ed979ae16951c601ec00cdac4ff4b780eab39a69f75e5b0b18b432/pretrainedmodels-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "f0f88cdb721a8587af7cb87fdac4756e", "sha256": "7e77ead4619a3e11ab3c41982c8ad5b86edffe37c87fd2a37ec3c2cc6470b98a" }, "downloads": -1, "filename": "pretrainedmodels-0.7.4.tar.gz", "has_sig": false, "md5_digest": "f0f88cdb721a8587af7cb87fdac4756e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58821, "upload_time": "2018-10-29T08:18:45", "url": "https://files.pythonhosted.org/packages/84/0e/be6a0e58447ac16c938799d49bfb5fb7a80ac35e137547fc6cee2c08c4cf/pretrainedmodels-0.7.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f0f88cdb721a8587af7cb87fdac4756e", "sha256": "7e77ead4619a3e11ab3c41982c8ad5b86edffe37c87fd2a37ec3c2cc6470b98a" }, "downloads": -1, "filename": "pretrainedmodels-0.7.4.tar.gz", "has_sig": false, "md5_digest": "f0f88cdb721a8587af7cb87fdac4756e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58821, "upload_time": "2018-10-29T08:18:45", "url": "https://files.pythonhosted.org/packages/84/0e/be6a0e58447ac16c938799d49bfb5fb7a80ac35e137547fc6cee2c08c4cf/pretrainedmodels-0.7.4.tar.gz" } ] }