torchvision MNIST HTTPError:HTTP 错误 403:禁止

问题描述

我正在尝试复制此网页 https://adversarial-ml-tutorial.org/adversarial_examples/

中介绍的此实验

我获得了 jupyter notebook 并加载到我的本地主机中,然后使用 Jupiter notebook 打开它。当我运行以下代码以使用以下代码获取数据集时:

from torchvision import datasets,transforms
from torch.utils.data import DataLoader

mnist_train = datasets.MNIST("../data",train=True,download=True,transform=transforms.ToTensor())
mnist_test = datasets.MNIST("../data",train=False,transform=transforms.ToTensor())
train_loader = DataLoader(mnist_train,batch_size = 100,shuffle=True)
test_loader = DataLoader(mnist_test,shuffle=False)

我收到以下错误:

Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to ../data\MNIST\raw\train-images-idx3-ubyte.gz
0/? [00:00<?,?it/s]
---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
<ipython-input-15-e6f62798f426> in <module>
      2 from torch.utils.data import DataLoader
      3 
----> 4 mnist_train = datasets.MNIST("../data",transform=transforms.ToTensor())
      5 mnist_test = datasets.MNIST("../data",transform=transforms.ToTensor())
      6 train_loader = DataLoader(mnist_train,shuffle=True)

~\Anaconda3\lib\site-packages\torchvision\datasets\mnist.py in __init__(self,root,train,transform,target_transform,download)
     77 
     78         if download:
---> 79             self.download()
     80 
     81         if not self._check_exists():

~\Anaconda3\lib\site-packages\torchvision\datasets\mnist.py in download(self)
    144         for url,md5 in self.resources:
    145             filename = url.rpartition('/')[2]
--> 146             download_and_extract_archive(url,download_root=self.raw_folder,filename=filename,md5=md5)
    147 
    148         # process and save as torch files

~\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in download_and_extract_archive(url,download_root,extract_root,filename,md5,remove_finished)
    254         filename = os.path.basename(url)
    255 
--> 256     download_url(url,md5)
    257 
    258     archive = os.path.join(download_root,filename)

~\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in download_url(url,md5)
     82                 )
     83             else:
---> 84                 raise e
     85         # check integrity of downloaded file
     86         if not check_integrity(fpath,md5):

~\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in download_url(url,md5)
     70             urllib.request.urlretrieve(
     71                 url,fpath,---> 72                 reporthook=gen_bar_updater()
     73             )
     74         except (urllib.error.URLError,IOError) as e:  # type: ignore[attr-defined]

~\Anaconda3\lib\urllib\request.py in urlretrieve(url,reporthook,data)
    245     url_type,path = splittype(url)
    246 
--> 247     with contextlib.closing(urlopen(url,data)) as fp:
    248         headers = fp.info()
    249 

~\Anaconda3\lib\urllib\request.py in urlopen(url,data,timeout,cafile,capath,cadefault,context)
    220     else:
    221         opener = _opener
--> 222     return opener.open(url,timeout)
    223 
    224 def install_opener(opener):

~\Anaconda3\lib\urllib\request.py in open(self,fullurl,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

~\Anaconda3\lib\urllib\request.py in http_response(self,request,response)
    639         if not (200 <= code < 300):
    640             response = self.parent.error(
--> 641                 'http',response,code,msg,hdrs)
    642 
    643         return response

~\Anaconda3\lib\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

~\Anaconda3\lib\urllib\request.py in _call_chain(self,chain,kind,meth_name,*args)
    501         for handler in handlers:
    502             func = getattr(handler,meth_name)
--> 503             result = func(*args)
    504             if result is not None:
    505                 return result

~\Anaconda3\lib\urllib\request.py in http_error_default(self,req,fp,hdrs)
    647 class HTTPDefaultErrorHandler(BaseHandler):
    648     def http_error_default(self,hdrs):
--> 649         raise HTTPError(req.full_url,hdrs,fp)
    650 
    651 class HTTPRedirectHandler(BaseHandler):

HTTPError: HTTP Error 403: Forbidden

非常感谢您对解决此问题的任何帮助。 我也可以直接从链接下载数据集,但我不知道如何使用它!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)