Repository: pytorch
Issue: Can't download torch vision models for older versions via torch.hub.load: "multiple choices"
Labels: triaged,module: hub,module: models

### 🐛 Describe the bug

Not sure whether this bug should be reported here or in torch.vision. I'm trying to download the pretrained DenseNet in v0.5.0. However, when running this code:

```python
m = torch.hub.load('pytorch/vision:v0.5.0', 'densenet201', pretrained=True)
```
I'm getting an error

```
[<ipython-input-9-eba9e529fc95>](https://localhost:8080/#) in <module>()
--> 1 model = torch.hub.load('pytorch/vision:v0.5.0', 'densenet201', pretrained=True)

/opt/conda/lib/python3.8/site-packages/torch/hub.py in load(repo_or_dir, model, *args, **kwargs)
    335 
    336     if source == 'github':
--> 337         repo_or_dir = _get_cache_or_reload(repo_or_dir, force_reload, verbose)
    338 
    339     model = _load_local(repo_or_dir, model, *args, **kwargs)

/opt/conda/lib/python3.8/site-packages/torch/hub.py in _get_cache_or_reload(github, force_reload, verbose)
    142         url = _git_archive_link(repo_owner, repo_name, branch)
    143         sys.stderr.write('Downloading: \"{}\" to {}\n'.format(url, cached_file))
--> 144         download_url_to_file(url, cached_file, progress=False)
    145 
    146         with zipfile.ZipFile(cached_file) as cached_zipfile:

/opt/conda/lib/python3.8/site-packages/torch/hub.py in download_url_to_file(url, dst, hash_prefix, progress)
    392     # certificates in older Python
    393     req = Request(url, headers={"User-Agent": "torch.hub"})
--> 394     u = urlopen(req)
    395     meta = u.info()
    396     if hasattr(meta, 'getheaders'):

/opt/conda/lib/python3.8/urllib/request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)
    220     else:
    221         opener = _opener
--> 222     return opener.open(url, data, timeout)
    223 
    224 def install_opener(opener):

/opt/conda/lib/python3.8/urllib/request.py in open(self, fullurl, data, timeout)
    529         for processor in self.process_response.get(protocol, []):
    530             meth = getattr(processor, meth_name)
--> 531             response = meth(req, response)
    532 
    533         return response

/opt/conda/lib/python3.8/urllib/request.py in http_response(self, request, response)
    638         # request was successfully received, understood, and accepted.
    639         if not (200 <= code < 300):
--> 640             response = self.parent.error(
    641                 'http', request, response, code, msg, hdrs)
    642 

/opt/conda/lib/python3.8/urllib/request.py in error(self, proto, *args)
    567         if http_err:
    568             args = (dict, 'default', 'http_error_default') + orig_args
--> 569             return self._call_chain(*args)
    570 
    571 # XXX probably also want an abstract factory that knows when it makes

/opt/conda/lib/python3.8/urllib/request.py in _call_chain(self, chain, kind, meth_name, *args)
    500         for handler in handlers:
    501             func = getattr(handler, meth_name)
--> 502             result = func(*args)
    503             if result is not None:
    504                 return result

/opt/conda/lib/python3.8/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)
    647 class HTTPDefaultErrorHandler(BaseHandler):
    648     def http_error_default(self, req, fp, code, msg, hdrs):
--> 649         raise HTTPError(req.full_url, code, msg, hdrs, fp)
    650 
    651 class HTTPRedirectHandler(BaseHandler):

HTTPError: HTTP Error 300: Multiple Choices
```
The same happens for older versions like `v0.4.0` or `v0.3.0`. It works, e.g., for `v0.6.0` or `v0.6.1`, but I need exactly `v0.5.0` since I have to apply a pretrained readout on the deep features. My guess is that the problem is that there exists both a tag `v0.5.0` and a branch `v0.5.0` in torch/vision, although they reference the same commit. For `v0.6.0`, the branch is called `v0.5.1` and for `v0.6.1`, the branch is called `release/0.6`, so there are no name clashes. The error is also visible when manually trying to download https://github.com/pytorch/vision/archive/v0.5.0.zip, but I don't know how I can fix this.

### Versions

Collecting environment information...
PyTorch version: 1.8.1+cu101
Is debug build: False
CUDA used to build PyTorch: 10.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 20.04.1 LTS (x86_64)
GCC version: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.31

Python version: 3.8.5 | packaged by conda-forge | (default, Sep 24 2020, 16:55:52)  [GCC 7.5.0] (64-bit runtime)
Python platform: Linux-3.10.0-1160.49.1.el7.x86_64-x86_64-with-glibc2.10
Is CUDA available: True
CUDA runtime version: 10.1.243
GPU models and configuration: GPU 0: NVIDIA GeForce RTX 2080 Ti
Nvidia driver version: 495.29.05
cuDNN version: /usr/lib/x86_64-linux-gnu/libcudnn.so.7.6.5
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

Versions of relevant libraries:
[pip3] mypy==0.910
[pip3] mypy-extensions==0.4.3
[pip3] numpy==1.19.5
[pip3] torch==1.8.1+cu101
[pip3] torchvision==0.9.1+cu101
[conda] mypy                      0.910            py38h497a2fe_0    conda-forge
[conda] mypy_extensions           0.4.3            py38h578d9bd_3    conda-forge
[conda] numpy                     1.19.5                   pypi_0    pypi
[conda] torch                     1.8.1+cu101              pypi_0    pypi
[conda] torchvision               0.9.1+cu101              pypi_0    pypi

cc @datumbox @fmassa @vfdev-5 @pmeier @nairbv @NicolasHug @vmoens @jdsgomes