README.rst 7.47 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
.. image:: https://codecov.io/gh/pytorch/vision/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/pytorch/vision

7
8
9
10
11
12
.. 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
    :target: https://pytorch.org/docs/stable/torchvision/index.html

13

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

Francisco Massa's avatar
Francisco Massa committed
16

Thomas Grainger's avatar
Thomas Grainger committed
17
18
19
Installation
============

20
21
22
23
24
25
26
27
28
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``                      |
+==========================+==========================+=================================+
| ``master`` / ``nightly`` | ``master`` / ``nightly`` | ``>=3.6``                       |
+--------------------------+--------------------------+---------------------------------+
29
30
| ``1.8.0``                | ``0.9.0``                | ``>=3.6``                       |
+--------------------------+--------------------------+---------------------------------+
31
32
33
34
| ``1.7.1``                | ``0.8.2``                | ``>=3.6``                       |
+--------------------------+--------------------------+---------------------------------+
| ``1.7.0``                | ``0.8.1``                | ``>=3.6``                       |
+--------------------------+--------------------------+---------------------------------+
35
36
| ``1.7.0``                | ``0.8.0``                | ``>=3.6``                       |
+--------------------------+--------------------------+---------------------------------+
37
38
39
40
| ``1.6.0``                | ``0.7.0``                | ``>=3.6``                       |
+--------------------------+--------------------------+---------------------------------+
| ``1.5.1``                | ``0.6.1``                | ``>=3.5``                       |
+--------------------------+--------------------------+---------------------------------+
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| ``1.5.0``                | ``0.6.0``                | ``>=3.5``                       |
+--------------------------+--------------------------+---------------------------------+
| ``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`` |
+--------------------------+--------------------------+---------------------------------+
55

Soumith Chintala's avatar
Soumith Chintala committed
56
Anaconda:
Thomas Grainger's avatar
Thomas Grainger committed
57
58
59

.. code:: bash

Soumith Chintala's avatar
Soumith Chintala committed
60
    conda install torchvision -c pytorch
Thomas Grainger's avatar
Thomas Grainger committed
61

Soumith Chintala's avatar
Soumith Chintala committed
62
pip:
Thomas Grainger's avatar
Thomas Grainger committed
63
64
65

.. code:: bash

Thomas Grainger's avatar
Thomas Grainger committed
66
    pip install torchvision
Thomas Grainger's avatar
Thomas Grainger committed
67

Soumith Chintala's avatar
Soumith Chintala committed
68
69
70
71
72
From source:

.. code:: bash

    python setup.py install
73
74
    # or, for OSX
    # MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install
Soumith Chintala's avatar
Soumith Chintala committed
75

Vince's avatar
Vince committed
76
77
78
79

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

80
81
82
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.
83
84
85
86
87
88
89
90
91
92
93

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')`

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

96
97
98
* `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,
99
100
101
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
102
103
104
.. _Pillow : https://python-pillow.org/
.. _Pillow-SIMD : https://github.com/uploadcare/pillow-simd
.. _accimage: https://github.com/pytorch/accimage
105
106
.. _libjpeg: http://ijg.org/
.. _libjpeg-turbo: https://libjpeg-turbo.org/
107

108
C++ API
Xiuyan Ni's avatar
Xiuyan Ni committed
109
=======
110
TorchVision also offers a C++ API that contains C++ equivalent of python models.
111
112
113
114
115
116
117

Installation From source:

.. code:: bash

    mkdir build
    cd build
118
    # Add -DWITH_CUDA=on support for the CUDA if needed
119
    cmake ..
120
    make
121
122
    make install

123
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
124
125
126
127

.. code:: rest

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

130
131
132
133
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
134

135
136
137
138
139
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.

140
141
Documentation
=============
Joseph Spisak's avatar
Joseph Spisak committed
142
You can find the API documentation on the pytorch website: https://pytorch.org/docs/stable/torchvision/index.html
edgarriba's avatar
edgarriba committed
143

144
145
Contributing
============
vfdev's avatar
vfdev committed
146

147
See the `CONTRIBUTING <CONTRIBUTING.md>`_ file for how to help out.
Vincent QB's avatar
Vincent QB committed
148
149
150
151
152
153
154

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!