README.rst 8.71 KB
Newer Older
Soumith Chintala's avatar
Soumith Chintala committed
1
torchvision
Xiuyan Ni's avatar
Xiuyan Ni committed
2
===========
Thomas Grainger's avatar
Thomas Grainger committed
3

4
5
6
7
.. image:: https://pepy.tech/badge/torchvision
    :target: https://pepy.tech/project/torchvision

.. image:: https://img.shields.io/badge/dynamic/json.svg?label=docs&url=https%3A%2F%2Fpypi.org%2Fpypi%2Ftorchvision%2Fjson&query=%24.info.version&colorB=brightgreen&prefix=v
8
    :target: https://pytorch.org/vision/stable/index.html
9

10

11
The torchvision package consists of popular datasets, model architectures, and common image transformations for computer vision.
Thomas Grainger's avatar
Thomas Grainger committed
12

Francisco Massa's avatar
Francisco Massa committed
13

Thomas Grainger's avatar
Thomas Grainger committed
14
15
16
Installation
============

17
18
19
20
21
22
23
We recommend Anaconda as Python package management system. Please refer to `pytorch.org <https://pytorch.org/>`_
for the detail of PyTorch (``torch``) installation. The following is the corresponding ``torchvision`` versions and
supported Python versions.

+--------------------------+--------------------------+---------------------------------+
| ``torch``                | ``torchvision``          | ``python``                      |
+==========================+==========================+=================================+
Philip Meier's avatar
Philip Meier committed
24
| ``main`` / ``nightly``   | ``main`` / ``nightly``   | ``>=3.6``, ``<=3.9``            |
25
+--------------------------+--------------------------+---------------------------------+
26
27
| ``1.10.0``               | ``0.11.1``               | ``>=3.6``, ``<=3.9``            |
+--------------------------+--------------------------+---------------------------------+
28
29
| ``1.9.1``                | ``0.10.1``               | ``>=3.6``, ``<=3.9``            |
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
30
| ``1.9.0``                | ``0.10.0``               | ``>=3.6``, ``<=3.9``            |
31
+--------------------------+--------------------------+---------------------------------+
32
33
| ``1.8.2``                | ``0.9.2``                | ``>=3.6``, ``<=3.9``            |
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
34
| ``1.8.1``                | ``0.9.1``                | ``>=3.6``, ``<=3.9``            |
35
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
36
| ``1.8.0``                | ``0.9.0``                | ``>=3.6``, ``<=3.9``            |
37
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
38
| ``1.7.1``                | ``0.8.2``                | ``>=3.6``, ``<=3.9``            |
39
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
40
| ``1.7.0``                | ``0.8.1``                | ``>=3.6``, ``<=3.8``            |
41
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
42
| ``1.7.0``                | ``0.8.0``                | ``>=3.6``, ``<=3.8``            |
43
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
44
| ``1.6.0``                | ``0.7.0``                | ``>=3.6``, ``<=3.8``            |
45
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
46
| ``1.5.1``                | ``0.6.1``                | ``>=3.5``, ``<=3.8``            |
47
+--------------------------+--------------------------+---------------------------------+
Philip Meier's avatar
Philip Meier committed
48
| ``1.5.0``                | ``0.6.0``                | ``>=3.5``, ``<=3.8``            |
49
50
51
52
53
54
55
56
57
58
59
60
61
+--------------------------+--------------------------+---------------------------------+
| ``1.4.0``                | ``0.5.0``                | ``==2.7``, ``>=3.5``, ``<=3.8`` |
+--------------------------+--------------------------+---------------------------------+
| ``1.3.1``                | ``0.4.2``                | ``==2.7``, ``>=3.5``, ``<=3.7`` |
+--------------------------+--------------------------+---------------------------------+
| ``1.3.0``                | ``0.4.1``                | ``==2.7``, ``>=3.5``, ``<=3.7`` |
+--------------------------+--------------------------+---------------------------------+
| ``1.2.0``                | ``0.4.0``                | ``==2.7``, ``>=3.5``, ``<=3.7`` |
+--------------------------+--------------------------+---------------------------------+
| ``1.1.0``                | ``0.3.0``                | ``==2.7``, ``>=3.5``, ``<=3.7`` |
+--------------------------+--------------------------+---------------------------------+
| ``<=1.0.1``              | ``0.2.2``                | ``==2.7``, ``>=3.5``, ``<=3.7`` |
+--------------------------+--------------------------+---------------------------------+
62

Soumith Chintala's avatar
Soumith Chintala committed
63
Anaconda:
Thomas Grainger's avatar
Thomas Grainger committed
64
65
66

.. code:: bash

Soumith Chintala's avatar
Soumith Chintala committed
67
    conda install torchvision -c pytorch
Thomas Grainger's avatar
Thomas Grainger committed
68

Soumith Chintala's avatar
Soumith Chintala committed
69
pip:
Thomas Grainger's avatar
Thomas Grainger committed
70
71
72

.. code:: bash

Thomas Grainger's avatar
Thomas Grainger committed
73
    pip install torchvision
Thomas Grainger's avatar
Thomas Grainger committed
74

Soumith Chintala's avatar
Soumith Chintala committed
75
76
77
78
79
From source:

.. code:: bash

    python setup.py install
80
81
    # or, for OSX
    # MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install
Soumith Chintala's avatar
Soumith Chintala committed
82

Vince's avatar
Vince committed
83

84
In case building TorchVision from source fails, install the nightly version of PyTorch following
85
the linked guide on the  `contributing page <https://github.com/pytorch/vision/blob/main/CONTRIBUTING.md#development-installation>`_ and retry the install.
Vince's avatar
Vince committed
86

87
88
89
By default, GPU support is built if CUDA is found and ``torch.cuda.is_available()`` is true.
It's possible to force building GPU support by setting ``FORCE_CUDA=1`` environment variable,
which is useful when building a docker image.
90
91
92
93
94
95
96
97
98
99
100

Image Backend
=============
Torchvision currently supports the following image backends:

* `Pillow`_ (default)

* `Pillow-SIMD`_ - a **much faster** drop-in replacement for Pillow with SIMD. If installed will be used as the default.

* `accimage`_ - if installed can be activated by calling :code:`torchvision.set_image_backend('accimage')`

101
102
* `libpng`_ - can be installed via conda :code:`conda install libpng` or any of the package managers for debian-based and RHEL-based Linux distributions.

103
104
105
* `libjpeg`_ - can be installed via conda :code:`conda install jpeg` or any of the package managers for debian-based and RHEL-based Linux distributions. `libjpeg-turbo`_ can be used as well.

**Notes:** ``libpng`` and ``libjpeg`` must be available at compilation time in order to be available. Make sure that it is available on the standard library locations,
106
107
108
otherwise, add the include and library paths in the environment variables ``TORCHVISION_INCLUDE`` and ``TORCHVISION_LIBRARY``, respectively.

.. _libpng : http://www.libpng.org/pub/png/libpng.html
109
110
111
.. _Pillow : https://python-pillow.org/
.. _Pillow-SIMD : https://github.com/uploadcare/pillow-simd
.. _accimage: https://github.com/pytorch/accimage
112
113
.. _libjpeg: http://ijg.org/
.. _libjpeg-turbo: https://libjpeg-turbo.org/
114

115
116
117
118
Video Backend
=============
Torchvision currently supports the following video backends:

119
120
121
* `pyav`_ (default) - Pythonic binding for ffmpeg libraries.

.. _pyav : https://github.com/PyAV-Org/PyAV
122
123
124
125
126
127
128
129
130

* video_reader - This needs ffmpeg to be installed and torchvision to be built from source. There shouldn't be any conflicting version of ffmpeg installed. Currently, this is only supported on Linux.

.. code:: bash

     conda install -c conda-forge ffmpeg
     python setup.py install


131
132
133
Using the models on C++
=======================
TorchVision provides an example project for how to use the models on C++ using JIT Script.
134
135
136
137
138
139
140

Installation From source:

.. code:: bash

    mkdir build
    cd build
141
    # Add -DWITH_CUDA=on support for the CUDA if needed
142
    cmake ..
143
    make
144
145
    make install

146
Once installed, the library can be accessed in cmake (after properly configuring ``CMAKE_PREFIX_PATH``) via the :code:`TorchVision::TorchVision` target:
bmanga's avatar
bmanga committed
147
148
149
150

.. code:: rest

	find_package(TorchVision REQUIRED)
151
	target_link_libraries(my-target PUBLIC TorchVision::TorchVision)
bmanga's avatar
bmanga committed
152

153
154
155
156
The ``TorchVision`` package will also automatically look for the ``Torch`` package and add it as a dependency to ``my-target``,
so make sure that it is also available to cmake via the ``CMAKE_PREFIX_PATH``.

For an example setup, take a look at ``examples/cpp/hello_world``.
bmanga's avatar
bmanga committed
157

158
159
160
161
162
TorchVision Operators
---------------------
In order to get the torchvision operators registered with torch (eg. for the JIT), all you need to do is to ensure that you
:code:`#include <torchvision/vision.h>` in your project.

163
164
Documentation
=============
scott-vsi's avatar
scott-vsi committed
165
You can find the API documentation on the pytorch website: https://pytorch.org/vision/stable/index.html
edgarriba's avatar
edgarriba committed
166

167
168
Contributing
============
vfdev's avatar
vfdev committed
169

170
See the `CONTRIBUTING <CONTRIBUTING.md>`_ file for how to help out.
Vincent QB's avatar
Vincent QB committed
171
172
173
174
175
176
177

Disclaimer on Datasets
======================

This is a utility library that downloads and prepares public datasets. We do not host or distribute these datasets, vouch for their quality or fairness, or claim that you have license to use the dataset. It is your responsibility to determine whether you have permission to use the dataset under the dataset's license.

If you're a dataset owner and wish to update any part of it (description, citation, etc.), or do not want your dataset to be included in this library, please get in touch through a GitHub issue. Thanks for your contribution to the ML community!