Skip to content

Commit 9bc959a

Browse files
authored
Merge branch 'master' into patch-1
2 parents 10161e8 + a685564 commit 9bc959a

File tree

154 files changed

+16150
-4033
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+16150
-4033
lines changed

.circleci/config.yml

Lines changed: 83 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ pytorch_tutorial_build_defaults: &pytorch_tutorial_build_defaults
106106
sudo pip -q install awscli==1.16.35
107107
108108
if [ -n "${CUDA_VERSION}" ]; then
109-
DRIVER_FN="NVIDIA-Linux-x86_64-440.59.run"
109+
DRIVER_FN="NVIDIA-Linux-x86_64-460.39.run"
110110
wget "https://s3.amazonaws.com/ossci-linux/nvidia_driver/$DRIVER_FN"
111111
sudo /bin/bash "$DRIVER_FN" -s --no-drm || (sudo cat /var/log/nvidia-installer.log && false)
112112
nvidia-smi
@@ -122,7 +122,7 @@ pytorch_tutorial_build_defaults: &pytorch_tutorial_build_defaults
122122
command: |
123123
set -e
124124
125-
export pyTorchDockerImageTag=291
125+
export pyTorchDockerImageTag=9de29bef4a5dc0dd1dd19428d83e5a66a44a1ed2
126126
echo "PyTorchDockerImageTag: "${pyTorchDockerImageTag}
127127
128128
cat >/home/circleci/project/ci_build_script.sh \<<EOL
@@ -171,18 +171,18 @@ pytorch_tutorial_build_defaults: &pytorch_tutorial_build_defaults
171171
172172
pytorch_tutorial_build_worker_defaults: &pytorch_tutorial_build_worker_defaults
173173
environment:
174-
DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py3"
174+
DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda10.2-cudnn7-py3-gcc7"
175175
CUDA_VERSION: "9"
176176
resource_class: gpu.medium
177177
<<: *pytorch_tutorial_build_defaults
178178

179179
pytorch_tutorial_build_manager_defaults: &pytorch_tutorial_build_manager_defaults
180180
environment:
181-
DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda9-cudnn7-py3"
181+
DOCKER_IMAGE: "308535385114.dkr.ecr.us-east-1.amazonaws.com/pytorch/pytorch-linux-xenial-cuda10.2-cudnn7-py3-gcc7"
182182
resource_class: medium
183183
<<: *pytorch_tutorial_build_defaults
184184

185-
pytorch_windows_build: &pytorch_windows_build
185+
pytorch_windows_build_worker: &pytorch_windows_build_worker
186186
executor: windows-with-nvidia-gpu
187187
steps:
188188
- checkout
@@ -191,10 +191,25 @@ pytorch_windows_build: &pytorch_windows_build
191191
no_output_timeout: 30m
192192
command: |
193193
.circleci/scripts/windows_cuda_install.sh
194+
- run:
195+
name: Generate cache key
196+
# This will refresh cache on Sundays, build should generate new cache.
197+
command: echo "$(date +"%Y-%U")" > .circleci-weekly
198+
- restore_cache:
199+
keys:
200+
- data-{{ checksum "Makefile" }}-{{ checksum ".circleci-weekly" }}
194201
- run:
195202
name: test
203+
no_output_timeout: "1h"
196204
command: |
197205
.circleci/scripts/build_for_windows.sh
206+
- save_cache:
207+
key: data-{{ checksum "Makefile" }}-{{ checksum ".circleci-weekly" }}
208+
paths:
209+
- advanced_source/data
210+
- beginner_source/data
211+
- intermediate_source/data
212+
- prototype_source/data
198213

199214
jobs:
200215
pytorch_tutorial_pr_build_worker_0:
@@ -323,8 +338,29 @@ jobs:
323338
pytorch_tutorial_master_build_manager:
324339
<<: *pytorch_tutorial_build_manager_defaults
325340

326-
pytorch_windows_build_worker:
327-
<<: *pytorch_windows_build
341+
pytorch_tutorial_windows_pr_build_worker_0:
342+
<<: *pytorch_windows_build_worker
343+
344+
pytorch_tutorial_windows_pr_build_worker_1:
345+
<<: *pytorch_windows_build_worker
346+
347+
pytorch_tutorial_windows_pr_build_worker_2:
348+
<<: *pytorch_windows_build_worker
349+
350+
pytorch_tutorial_windows_pr_build_worker_3:
351+
<<: *pytorch_windows_build_worker
352+
353+
pytorch_tutorial_windows_master_build_worker_0:
354+
<<: *pytorch_windows_build_worker
355+
356+
pytorch_tutorial_windows_master_build_worker_1:
357+
<<: *pytorch_windows_build_worker
358+
359+
pytorch_tutorial_windows_master_build_worker_2:
360+
<<: *pytorch_windows_build_worker
361+
362+
pytorch_tutorial_windows_master_build_worker_3:
363+
<<: *pytorch_windows_build_worker
328364

329365
workflows:
330366
build:
@@ -562,8 +598,46 @@ workflows:
562598
branches:
563599
only:
564600
- master
565-
- pytorch_windows_build_worker:
566-
name: win_test_worker
601+
- pytorch_tutorial_windows_pr_build_worker_0:
602+
filters:
603+
branches:
604+
ignore:
605+
- master
606+
- pytorch_tutorial_windows_pr_build_worker_1:
607+
filters:
608+
branches:
609+
ignore:
610+
- master
611+
- pytorch_tutorial_windows_pr_build_worker_2:
612+
filters:
613+
branches:
614+
ignore:
615+
- master
616+
- pytorch_tutorial_windows_pr_build_worker_3:
617+
filters:
618+
branches:
619+
ignore:
620+
- master
621+
- pytorch_tutorial_windows_master_build_worker_0:
622+
context: org-member
623+
filters:
624+
branches:
625+
only:
626+
- master
627+
- pytorch_tutorial_windows_master_build_worker_1:
628+
context: org-member
629+
filters:
630+
branches:
631+
only:
632+
- master
633+
- pytorch_tutorial_windows_master_build_worker_2:
634+
context: org-member
635+
filters:
636+
branches:
637+
only:
638+
- master
639+
- pytorch_tutorial_windows_master_build_worker_3:
640+
context: org-member
567641
filters:
568642
branches:
569643
only:

.circleci/scripts/build_for_windows.sh

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ mingw32/bin/mingw-get.exe install mingw32-make
1616
mingw32/bin/mingw-get.exe install msys-findutils
1717
mv mingw32/bin/mingw32-make.exe mingw32/bin/make.exe
1818
curl -k https://eternallybored.org/misc/wget/1.20.3/64/wget.exe -o mingw32/bin/wget.exe
19-
export PATH="${SOURCE_DIR}/mingw32/bin:$PATH"
19+
export PATH="${SOURCE_DIR}/mingw32/bin:${SOURCE_DIR}/mingw32/msys/1.0/bin:$PATH"
2020

2121
#install anaconda3
2222
export CONDA_HOME="${SOURCE_DIR}/conda"
@@ -31,19 +31,47 @@ eval "$(conda shell.bash hook)"
3131
conda create -qyn testenv python=3.7
3232
conda activate testenv
3333

34-
conda install sphinx
35-
pip install sphinx_gallery==0.3.1 flask pandas spacy ipython scipy pySoundFile scikit-image
36-
pip install -e git+git://github.com/pytorch/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme
37-
conda install -yq -c pytorch "cudatoolkit=10.1" pytorch torchvision torchtext
38-
conda install torchaudio -c pytorch-test
34+
REQUIREMENTS="$(grep -v '^ *#\|^torch\|^torchaudio\|^torchvision|^torchtext' $PROJECT_DIR/requirements.txt | grep .)"
35+
echo $REQUIREMENTS > requirements.txt
36+
pip install -r requirements.txt
37+
pip install pySoundFile
38+
# Force uninstall torch & related packages, we'll install them using conda later.
39+
pip uninstall -y torch torchvision torchtext
40+
conda install -yq -c pytorch "cudatoolkit=10.1" pytorch torchvision torchtext torchaudio
3941
python -m spacy download de
4042
python -m spacy download en
4143
pushd ${PROJECT_DIR}
4244
DIR=.jenkins
43-
python $DIR/remove_runnable_code.py beginner_source/aws_distributed_training_tutorial.py beginner_source/aws_distributed_training_tutorial.py || true
44-
python $DIR/remove_runnable_code.py beginner_source/data_loading_tutorial.py beginner_source/data_loading_tutorial.py || true
45-
python $DIR/remove_runnable_code.py beginner_source/dcgan_faces_tutorial.py beginner_source/dcgan_faces_tutorial.py || true
46-
python $DIR/remove_runnable_code.py intermediate_source/model_parallel_tutorial.py intermediate_source/model_parallel_tutorial.py || true
47-
python $DIR/remove_runnable_code.py intermediate_source/memory_format_tutorial.py intermediate_source/memory_format_tutorial.py || true
45+
export NUM_WORKERS=4
4846

49-
make docs
47+
if [[ "${CIRCLE_JOB}" == *worker_* ]]; then
48+
python $DIR/remove_runnable_code.py intermediate_source/model_parallel_tutorial.py intermediate_source/model_parallel_tutorial.py || true
49+
python $DIR/remove_runnable_code.py advanced_source/static_quantization_tutorial.py advanced_source/static_quantization_tutorial.py || true
50+
python $DIR/remove_runnable_code.py beginner_source/hyperparameter_tuning_tutorial.py beginner_source/hyperparameter_tuning_tutorial.py || true
51+
python $DIR/remove_runnable_code.py beginner_source/audio_preprocessing_tutorial.py beginner_source/audio_preprocessing_tutorial.py || true
52+
# Temp remove for mnist download issue.
53+
python $DIR/remove_runnable_code.py beginner_source/fgsm_tutorial.py beginner_source/fgsm_tutorial.py || true
54+
55+
export WORKER_ID=$(echo "${CIRCLE_JOB}" | tr -dc '0-9')
56+
count=0
57+
FILES_TO_RUN=()
58+
for work_directory in beginner_source intermediate_source advanced_source recipes_source prototype_source; do
59+
for filename in $(find $work_directory -name '\*.py' -not -path '\*/data/\*'); do
60+
if [ $(($count % $NUM_WORKERS)) != $WORKER_ID ]; then
61+
echo "Removing runnable code from "$filename
62+
python $DIR/remove_runnable_code.py $filename $filename
63+
else
64+
echo "Keeping "$filename
65+
FILES_TO_RUN+=($(basename $filename .py))
66+
fi
67+
count=$((count+1))
68+
done
69+
done
70+
echo "FILES_TO_RUN: " ${FILES_TO_RUN[@]}
71+
fi
72+
73+
if [[ ! -d advanced_source/data || ! -d beginner_source/data || ! -d intermediate_source/data || ! -d prototype_source/data ]];then
74+
make download
75+
fi
76+
77+
make html

.devcontainer/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM mcr.microsoft.com/vscode/devcontainers/python:3.8
2+
3+
COPY requirements.txt /tmp/pip-tmp/
4+
5+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
6+
&& apt-get install git gcc unzip make -y \
7+
&& pip3 install --disable-pip-version-check --no-cache-dir -r /tmp/pip-tmp/requirements.txt \
8+
&& rm -rf /tmp/pip-tmp

.devcontainer/devcontainer.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "PyTorch Tutorials",
3+
"build": {
4+
"context": "..",
5+
"dockerfile": "Dockerfile",
6+
"args": {}
7+
},
8+
"settings": {
9+
"terminal.integrated.shell.linux": "/bin/bash",
10+
"workbench.startupEditor": "none",
11+
"files.autoSave": "afterDelay",
12+
"python.dataScience.enabled": true,
13+
"python.dataScience.alwaysTrustNotebooks": true,
14+
"python.insidersChannel": "weekly",
15+
"python.showStartPage": false
16+
},
17+
"extensions": ["ms-python.python", "lextudio.restructuredtext"]
18+
}

.devcontainer/requirements.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Refer to ./jenkins/build.sh for tutorial build instructions
2+
3+
sphinx==1.8.2
4+
sphinx-gallery==0.3.1
5+
tqdm
6+
numpy
7+
matplotlib
8+
torch
9+
torchvision
10+
torchtext
11+
torchaudio
12+
PyHamcrest
13+
bs4
14+
awscli==1.16.35
15+
flask
16+
spacy
17+
ray[tune]
18+
19+
# PyTorch Theme
20+
-e git+git://github.com/pytorch/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme
21+
22+
ipython
23+
24+
# to run examples
25+
pandas
26+
scikit-image
27+
pillow==8.1.1
28+
wget
29+
30+
# for codespaces env
31+
pylint

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,4 +120,4 @@ cleanup.sh
120120
*.swp
121121

122122
# PyTorch things
123-
*.pt
123+
*.pt

.jenkins/build.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ else
66
export BUCKET_NAME=pytorch-tutorial-build-pull-request
77
fi
88

9+
# set locale for click dependency in spacy
10+
export LC_ALL=C.UTF-8
11+
export LANG=C.UTF-8
12+
913
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
1014

1115
sudo apt-get update
@@ -18,6 +22,12 @@ pip install -r $DIR/../requirements.txt
1822
# export PATH=/opt/conda/bin:$PATH
1923
# pip install sphinx==1.8.2 pandas
2024

25+
#Install PyTorch Nightly for test.
26+
# Nightly - pip install --pre torch torchvision torchaudio -f https://download.pytorch.org/whl/nightly/cu102/torch_nightly.html
27+
# RC Link
28+
# pip uninstall -y torch torchvision torchaudio torchtext
29+
# pip install -f https://download.pytorch.org/whl/test/cu102/torch_test.html torch torchvision torchaudio torchtext
30+
2131
# For Tensorboard. Until 1.14 moves to the release channel.
2232
pip install tb-nightly
2333

@@ -28,9 +38,7 @@ python -m spacy download de
2838
# PyTorch Theme
2939
rm -rf src
3040
pip install -e git+git://github.com/pytorch/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme
31-
# pillow >= 4.2 will throw error when trying to write mode RGBA as JPEG,
32-
# this is a workaround to the issue.
33-
pip install sphinx-gallery==0.3.1 tqdm matplotlib ipython pillow==4.1.1
41+
pip install sphinx-gallery==0.3.1 tqdm matplotlib ipython pillow==8.1.0
3442

3543
aws configure set default.s3.multipart_threshold 5120MB
3644

@@ -39,6 +47,11 @@ export NUM_WORKERS=20
3947
if [[ "${JOB_BASE_NAME}" == *worker_* ]]; then
4048
# Step 1: Remove runnable code from tutorials that are not supposed to be run
4149
python $DIR/remove_runnable_code.py beginner_source/aws_distributed_training_tutorial.py beginner_source/aws_distributed_training_tutorial.py || true
50+
# python $DIR/remove_runnable_code.py advanced_source/ddp_pipeline_tutorial.py advanced_source/ddp_pipeline_tutorial.py || true
51+
# Temp remove for mnist download issue. (Re-enabled for 1.8.1)
52+
# python $DIR/remove_runnable_code.py beginner_source/fgsm_tutorial.py beginner_source/fgsm_tutorial.py || true
53+
# python $DIR/remove_runnable_code.py intermediate_source/spatial_transformer_tutorial.py intermediate_source/spatial_transformer_tutorial.py || true
54+
4255
# TODO: Fix bugs in these tutorials to make them runnable again
4356
# python $DIR/remove_runnable_code.py beginner_source/audio_classifier_tutorial.py beginner_source/audio_classifier_tutorial.py || true
4457

.jenkins/remove_runnable_code.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,17 @@
1616
if line.startswith('#'):
1717
ret_lines.append(line)
1818
state = STATE_NORMAL
19+
elif ((line.startswith('"""') or line.startswith('r"""')) and
20+
line.endswith('"""')):
21+
ret_lines.append(line)
22+
state = STATE_NORMAL
1923
elif line.startswith('"""') or line.startswith('r"""'):
2024
ret_lines.append(line)
2125
state = STATE_IN_MULTILINE_COMMENT_BLOCK_DOUBLE_QUOTE
26+
elif ((line.startswith("'''") or line.startswith("r'''")) and
27+
line.endswith("'''")):
28+
ret_lines.append(line)
29+
state = STATE_NORMAL
2230
elif line.startswith("'''") or line.startswith("r'''"):
2331
ret_lines.append(line)
2432
state = STATE_IN_MULTILINE_COMMENT_BLOCK_SINGLE_QUOTE

Makefile

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,11 @@ download:
9797
wget -N https://download.pytorch.org/models/mobilenet_v2-b0353104.pth -P $(DATADIR)
9898
cp $(DATADIR)/mobilenet_v2-b0353104.pth advanced_source/data/mobilenet_pretrained_float.pth
9999

100-
# Download dataset for advanced_source/static_quantization_tutorial.py
101-
wget -N https://s3.amazonaws.com/pytorch-tutorial-assets/imagenet_1k.zip -P $(DATADIR)
102-
unzip $(ZIPOPTS) $(DATADIR)/imagenet_1k.zip -d advanced_source/data/
103100

104101
# Download model for prototype_source/graph_mode_static_quantization_tutorial.py
105102
wget -N https://download.pytorch.org/models/resnet18-5c106cde.pth -P $(DATADIR)
106103
cp $(DATADIR)/resnet18-5c106cde.pth prototype_source/data/resnet18_pretrained_float.pth
107104

108-
# Download dataset for prototype_source/graph_mode_static_quantization_tutorial.py
109-
wget -N https://s3.amazonaws.com/pytorch-tutorial-assets/imagenet_1k.zip -P $(DATADIR)
110-
unzip $(ZIPOPTS) $(DATADIR)/imagenet_1k.zip -d prototype_source/data/
111105

112106
docs:
113107
make download

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,9 @@ In case you prefer to write your tutorial in jupyter, you can use [this script](
2929
- You can skip the computationally intensive graph generation by running `make html-noplot` to build basic html documentation to `_build/html`. This way, you can quickly preview your tutorial.
3030

3131
> If you get **ModuleNotFoundError: No module named 'pytorch_sphinx_theme' make: *** [html-noplot] Error 2**, from /tutorials/src/pytorch-sphinx-theme run `python setup.py install`.
32+
33+
34+
## About contributing to PyTorch Documentation and Tutorials
35+
* You can find information about contributing to PyTorch documentation in the
36+
PyTorch Repo [README.md](https://github.com/pytorch/pytorch/blob/master/README.md) file.
37+
* Additional information can be found in [PyTorch CONTRIBUTING.md](https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md).

_static/img/8_workers.png

319 KB
Loading

_static/img/basics/comp-graph.png

14 KB
Loading

_static/img/basics/fashion_mnist.png

32.6 KB
Loading
59.2 KB
Loading

_static/img/basics/typesdata.png

14.4 KB
Loading

_static/img/dag_autograd.png

17.3 KB
Loading

_static/img/deeplabv3_android.png

371 KB
Loading

_static/img/deeplabv3_android2.png

54.7 KB
Loading

_static/img/deeplabv3_ios.png

381 KB
Loading

_static/img/deeplabv3_ios2.png

42.6 KB
Loading

_static/img/mario.gif

4.89 MB
Loading

_static/img/mario_env.png

38.7 KB
Loading

_static/img/oneworker.png

120 KB
Loading

_static/img/ray-tune.png

58.4 KB
Loading
Loading
14.5 KB
Loading
Loading
Loading
41.9 KB
Loading
Loading

_static/mnist.pkl.gz

15.4 MB
Binary file not shown.

_static/torchvision_finetuning_instance_segmentation.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1448,7 +1448,7 @@
14481448
" self.masks = list(sorted(os.listdir(os.path.join(root, \"PedMasks\"))))\n",
14491449
"\n",
14501450
" def __getitem__(self, idx):\n",
1451-
" # load images ad masks\n",
1451+
" # load images and masks\n",
14521452
" img_path = os.path.join(self.root, \"PNGImages\", self.imgs[idx])\n",
14531453
" mask_path = os.path.join(self.root, \"PedMasks\", self.masks[idx])\n",
14541454
" img = Image.open(img_path).convert(\"RGB\")\n",

_static/tv-training-code.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self, root, transforms):
2525
self.masks = list(sorted(os.listdir(os.path.join(root, "PedMasks"))))
2626

2727
def __getitem__(self, idx):
28-
# load images ad masks
28+
# load images and masks
2929
img_path = os.path.join(self.root, "PNGImages", self.imgs[idx])
3030
mask_path = os.path.join(self.root, "PedMasks", self.masks[idx])
3131
img = Image.open(img_path).convert("RGB")

0 commit comments

Comments
 (0)