首页 > 解决方案 > urllib.error.HTTPError:HTTP 错误 403:从 pytorch hub 加载 resnet18 时超出速率限制

问题描述

我不确定为什么会收到速率限制错误。

(fashcomp) [jalal@goku fashion-compatibility]$ python main.py --test --l2_embed --resume runs/nondisjoint_l2norm/model_best.pth.tar --datadir ../../../data/fashion
/scratch3/venv/fashcomp/lib/python3.8/site-packages/torchvision/transforms/transforms.py:310: UserWarning: The use of the transforms.Scale transform is deprecated, please use transforms.Resize instead.
  warnings.warn("The use of the transforms.Scale transform is deprecated, " +
Traceback (most recent call last):
  File "main.py", line 313, in <module>
    main()    
  File "main.py", line 105, in main
    model = torch.hub.load('pytorch/vision:v1.9.0', 'resnet18', pretrained=True)
  File "/scratch3/venv/fashcomp/lib/python3.8/site-packages/torch/hub.py", line 362, in load
    repo_or_dir = _get_cache_or_reload(repo_or_dir, force_reload, verbose)
  File "/scratch3/venv/fashcomp/lib/python3.8/site-packages/torch/hub.py", line 162, in _get_cache_or_reload
    _validate_not_a_forked_repo(repo_owner, repo_name, branch)
  File "/scratch3/venv/fashcomp/lib/python3.8/site-packages/torch/hub.py", line 124, in _validate_not_a_forked_repo
    with urlopen(url) as r:
  File "/usr/local/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.8/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/usr/local/lib/python3.8/urllib/request.py", line 640, in http_response
    response = self.parent.error(
  File "/usr/local/lib/python3.8/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/usr/local/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.8/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: rate limit exceeded

我有:

$ pip freeze
h5py==3.3.0
joblib==1.0.1
numpy==1.21.2
Pillow==8.3.1
scikit-learn==0.24.2
scipy==1.7.1
sklearn==0.0
threadpoolctl==2.2.0
torch==1.9.0
torchaudio==0.9.0
torchvision==0.10.0
typing-extensions==3.10.0.0

我从https://pytorch.org/hub/pytorch_vision_resnet/遵循了这个: 在此处输入图像描述

标签: pythonpytorchtorchhttp-error

解决方案


这是 Pytorch 1.9 中的一个错误。作为一种解决方法,请尝试添加:

torch.hub._validate_not_a_forked_repo=lambda a,b,c: True

torch.hub在任何呼叫之前到您的脚本。IE:

torch.hub._validate_not_a_forked_repo=lambda a,b,c: True
model = torch.hub.load('pytorch/vision:v0.9.0', 'resnet18', pretrained=True)

根据 Philip Meier(开发人员之一)的帖子,这是 Pytorch 1.9 ( #56138 ) 中引入的一个错误,您不应该在旧版本中遇到这个问题。
这已经在 master 中修复了,但目前尚不清楚是否有 1.9.1 附带此功能。因此,在 1.10 发布之前,您要么必须使用旧版本,要么torchvision改用或简单地使用上面提出的解决方法

更新:

Pytorch 发布了 1.9(即 1.9.1)的错误修复,因此更新到 1.9.1 应该可以永久纠正这个问题。


推荐阅读