__init__.py 3.5 KB
Newer Older
1
2
3
4
5
6
"""The models subpackage contains definitions for the following model
architectures:

-  `AlexNet`_
-  `VGG`_
-  `ResNet`_
7
-  `SqueezeNet`_
Geoff Pleiss's avatar
Geoff Pleiss committed
8
-  `DenseNet`_
9
-  `Inception`_ v3
10
11
12
13
14
15
16
17

You can construct a model with random weights by calling its constructor:

.. code:: python

    import torchvision.models as models
    resnet18 = models.resnet18()
    alexnet = models.alexnet()
18
    vgg16 = models.vgg16()
19
    squeezenet = models.squeezenet1_0()
Geoff Pleiss's avatar
Geoff Pleiss committed
20
    densenet = models.densenet_161()
21
    inception = models.inception_v3()
22

23
24
We provide pre-trained models, using the PyTorch :mod:`torch.utils.model_zoo`.
These can be constructed by passing ``pretrained=True``:
25
26
27
28
29
30

.. code:: python

    import torchvision.models as models
    resnet18 = models.resnet18(pretrained=True)
    alexnet = models.alexnet(pretrained=True)
31
32
33
34
    squeezenet = models.squeezenet1_0(pretrained=True)
    vgg16 = models.vgg16(pretrained=True)
    densenet = models.densenet_161(pretrained=True)
    inception = models.inception_v3(pretrained=True)
35

36
37
All pre-trained models expect input images normalized in the same way,
i.e. mini-batches of 3-channel RGB images of shape (3 x H x W),
38
where H and W are expected to be at least 224.
39
40
41
42
43
44
45
46
47
48
The images have to be loaded in to a range of [0, 1] and then normalized
using ``mean = [0.485, 0.456, 0.406]`` and ``std = [0.229, 0.224, 0.225]``.
You can use the following transform to normalize::

    normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
                                     std=[0.229, 0.224, 0.225])

An example of such normalization can be found in the imagenet example
`here <https://github.com/pytorch/examples/blob/42e5b996718797e45c46a25c55b031e6768f8440/imagenet/main.py#L89-L101>`_

49
50
ImageNet 1-crop error rates (224x224)

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
================================  =============   =============
Network                           Top-1 error     Top-5 error
================================  =============   =============
ResNet-18                         30.24           10.92
ResNet-34                         26.70           8.58
ResNet-50                         23.85           7.13
ResNet-101                        22.63           6.44
ResNet-152                        21.69           5.94
Inception v3                      22.55           6.44
AlexNet                           43.45           20.91
VGG-11                            30.98           11.37
VGG-13                            30.07           10.75
VGG-16                            28.41           9.62
VGG-19                            27.62           9.12
VGG-11 with batch normalization   29.62           10.19
VGG-13 with batch normalization   28.45           9.63
VGG-16 with batch normalization   26.63           8.50
VGG-19 with batch normalization   25.76           8.15
SqueezeNet 1.0                    41.90           19.58
SqueezeNet 1.1                    41.81           19.38
Densenet-121                      25.35           7.83
Densenet-169                      24.00           7.00
Densenet-201                      22.80           6.43
Densenet-161                      22.35           6.20
================================  =============   =============
76
77


78
79
80
.. _AlexNet: https://arxiv.org/abs/1404.5997
.. _VGG: https://arxiv.org/abs/1409.1556
.. _ResNet: https://arxiv.org/abs/1512.03385
81
.. _SqueezeNet: https://arxiv.org/abs/1602.07360
Geoff Pleiss's avatar
Geoff Pleiss committed
82
.. _DenseNet: https://arxiv.org/abs/1608.06993
83
.. _Inception: https://arxiv.org/abs/1512.00567
84
85
"""

86
87
88
from .alexnet import *
from .resnet import *
from .vgg import *
89
from .squeezenet import *
90
from .inception import *
Geoff Pleiss's avatar
Geoff Pleiss committed
91
from .densenet import *