PyTorch Tutorials
All the tutorials are now presented as sphinx style documentation at:
https://pytorch.org/tutorials
Asking a question
If you have a question about a tutorial, post in https://dev-discuss.pytorch.org/ rather than creating an issue in this repo. Your question will be answered much faster on the dev-discuss forum.
Submitting an issue
You can submit the following types of issues:
- Feature request - request a new tutorial to be added. Please explain why this tutorial is needed and how it demonstrates PyTorch value.
- Bug report - report a failure or outdated information in an existing tutorial. When submitting a bug report, please run:
python3 -m torch.utils.collect_envto get information about your environment and add the output to the bug report.
Contributing
We use sphinx-gallery's notebook styled examples to create the tutorials. Syntax is very simple. In essence, you write a slightly well formatted Python file and it shows up as an HTML page. In addition, a Jupyter notebook is autogenerated and available to run in Google Colab.
Here is how you can create a new tutorial (for a detailed description, see CONTRIBUTING.md):
NOTE: Before submitting a new tutorial, read PyTorch Tutorial Submission Policy.
- Create a Python file. If you want it executed while inserted into documentation, save the file with the suffix
tutorialso that the file name isyour_tutorial.py. - Put it in one of the
beginner_source,intermediate_source,advanced_sourcedirectory based on the level of difficulty. If it is a recipe, add it torecipes_source. For tutorials demonstrating unstable prototype features, add to theprototype_source. - For Tutorials (except if it is a prototype feature), include it in the
toctreedirective and create acustomcarditemin index.rst. - For Tutorials (except if it is a prototype feature), create a thumbnail in the index.rst file using a command like
.. customcarditem:: beginner/your_tutorial.html. For Recipes, create a thumbnail in the recipes_index.rst
Building locally
The tutorial build is very large and requires a GPU. If your machine does not have a GPU device, you can preview your HTML build without actually downloading the data and running the tutorial code:
- Install required dependencies by running:
pip install -r requirements.txt.
Typically, you would run either incondaorvirtualenv. If you want to usevirtualenv, in the root of the repo, run:virtualenv venv, thensource venv/bin/activate.
- If you have a GPU-powered laptop, you can build using
make docs. This will download the data, execute the tutorials and build the documentation todocs/directory. This might take about 60-120 min for systems with GPUs. If you do not have a GPU installed on your system, then see next step. - You can skip the computationally intensive graph generation by running
make html-noplotto build basic html documentation to_build/html. This way, you can quickly preview your tutorial.
Building a single tutorial
You can build a single tutorial by using the GALLERY_PATTERN environment variable. For example to run only neural_style_transfer_tutorial.py, run:
GALLERY_PATTERN="neural_style_transfer_tutorial.py" make html
or
GALLERY_PATTERN="neural_style_transfer_tutorial.py" sphinx-build . _build
The GALLERY_PATTERN variable respects regular expressions.
Spell Check
You can run pyspelling to check for spelling errors in the tutorials. To check only Python files, run pyspelling -n python. To check only .rst files, use pyspelling -n reST. Currently, .rst spell checking is limited to the beginner/ directory. Contributions to enable spell checking in other directories are welcome!pyspelling # full check (~3 mins)
pyspelling -n python # Python files only
pyspelling -n reST # reST files (only beginner/ dir currently included)
About contributing to PyTorch Documentation and Tutorials
- You can find information about contributing to PyTorch documentation in the
- Additional information can be found in PyTorch CONTRIBUTING.md.
License
PyTorch Tutorials is BSD licensed, as found in the LICENSE file.