Repository: pytorch/vision

Issue:
Documentation for torchvision.RandomAffine() refers to a wrong URL
The doc for the **resample** option in `torchvision.RandomAffine()` refers to Pillow docs version 3.4.x but this link gives **Permission Denied**. However, the links for version 5.2.0 and the stable version work, so I think it will be good to update the link.

Documentation Page for `torchvision.RandomAffine()`: 
https://pytorch.org/docs/stable/torchvision/transforms.html#torchvision.transforms.RandomAffine

Current URL (not working/permission denied):
http://pillow.readthedocs.io/en/3.4.x/handbook/concepts.html#filters

Working URL (5.2.0):
http://pillow.readthedocs.io/en/5.2.x/handbook/concepts.html#filters

**Working URL (stable):**
http://pillow.readthedocs.io/en/stable/handbook/concepts.html#filters


Discussion:

Resolving patch:
diff --git a/torchvision/transforms/functional.py b/torchvision/transforms/functional.py
--- a/torchvision/transforms/functional.py
+++ b/torchvision/transforms/functional.py
@@ -602,7 +602,7 @@ def rotate(img, angle, resample=False, expand=False, center=None):
             Origin is the upper left corner.
             Default is the center of the image.
 
-    .. _filters: http://pillow.readthedocs.io/en/3.4.x/handbook/concepts.html#filters
+    .. _filters: https://pillow.readthedocs.io/en/latest/handbook/concepts.html#filters
 
     """
 
diff --git a/torchvision/transforms/transforms.py b/torchvision/transforms/transforms.py
--- a/torchvision/transforms/transforms.py
+++ b/torchvision/transforms/transforms.py
@@ -804,8 +804,7 @@ class RandomRotation(object):
             If degrees is a number instead of sequence like (min, max), the range of degrees
             will be (-degrees, +degrees).
         resample ({PIL.Image.NEAREST, PIL.Image.BILINEAR, PIL.Image.BICUBIC}, optional):
-            An optional resampling filter.
-            See http://pillow.readthedocs.io/en/3.4.x/handbook/concepts.html#filters
+            An optional resampling filter. See `filters`_ for more information.
             If omitted, or if the image has mode "1" or "P", it is set to PIL.Image.NEAREST.
         expand (bool, optional): Optional expansion flag.
             If true, expands the output to make it large enough to hold the entire rotated image.
@@ -814,6 +813,9 @@ class RandomRotation(object):
         center (2-tuple, optional): Optional center of rotation.
             Origin is the upper left corner.
             Default is the center of the image.
+
+    .. _filters: https://pillow.readthedocs.io/en/latest/handbook/concepts.html#filters
+
     """
 
     def __init__(self, degrees, resample=False, expand=False, center=None):
@@ -880,10 +882,12 @@ class RandomAffine(object):
             If degrees is a number instead of sequence like (min, max), the range of degrees
             will be (-degrees, +degrees). Will not apply shear by default
         resample ({PIL.Image.NEAREST, PIL.Image.BILINEAR, PIL.Image.BICUBIC}, optional):
-            An optional resampling filter.
-            See http://pillow.readthedocs.io/en/3.4.x/handbook/concepts.html#filters
+            An optional resampling filter. See `filters`_ for more information.
             If omitted, or if the image has mode "1" or "P", it is set to PIL.Image.NEAREST.
         fillcolor (int): Optional fill color for the area outside the transform in the output image. (Pillow>=5.0.0)
+
+    .. _filters: https://pillow.readthedocs.io/en/latest/handbook/concepts.html#filters
+
     """
 
     def __init__(self, degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0):


Test patch: