torchvision MNIST 数据集下载问题

时间:2021-03-16 15:42:27

标签: python pytorch mnist torchvision

我正在尝试从 torchvision 包中获取 MNIST 数据集:

import torch
import torchvision
from torchvision import datasets, transforms
train = datasets.MNIST('', train=True, download=True,
                       transform=transforms.Compose([
                           transforms.ToTensor()
                       ]))

运行此代码时,出现以下错误:

Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to MNIST\raw\train-images-idx3-ubyte.gz

---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
<ipython-input-3-f99c3ec55e27> in <module>
----> 1 train = datasets.MNIST('', train=True, download=True,
      2                        transform=transforms.Compose([
      3                            transforms.ToTensor()
      4                        ]))

C:\ProgramData\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():

C:\ProgramData\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

C:\ProgramData\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in download_and_extract_archive(url, download_root, extract_root, filename, md5, remove_finished)
    312         filename = os.path.basename(url)
    313 
--> 314     download_url(url, download_root, filename, md5)
    315 
    316     archive = os.path.join(download_root, filename)

C:\ProgramData\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in download_url(url, root, filename, md5, max_redirect_hops)
    138             _urlretrieve(url, fpath)
    139         else:
--> 140             raise e
    141     # check integrity of downloaded file
    142     if not check_integrity(fpath, md5):

C:\ProgramData\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in download_url(url, root, filename, md5, max_redirect_hops)
    130     try:
    131         print('Downloading ' + url + ' to ' + fpath)
--> 132         _urlretrieve(url, fpath)
    133     except (urllib.error.URLError, IOError) as e:  # type: ignore[attr-defined]
    134         if url[:5] == 'https':

C:\ProgramData\Anaconda3\lib\site-packages\torchvision\datasets\utils.py in _urlretrieve(url, filename, chunk_size)
     27 def _urlretrieve(url: str, filename: str, chunk_size: int = 1024) -> None:
     28     with open(filename, "wb") as fh:
---> 29         with urllib.request.urlopen(urllib.request.Request(url, headers={"User-Agent": USER_AGENT})) as response:
     30             with tqdm(total=response.length) as pbar:
     31                 for chunk in iter(lambda: response.read(chunk_size), ""):

C:\ProgramData\Anaconda3\lib\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):

C:\ProgramData\Anaconda3\lib\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

C:\ProgramData\Anaconda3\lib\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 

C:\ProgramData\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

C:\ProgramData\Anaconda3\lib\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

C:\ProgramData\Anaconda3\lib\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 503: Service Unavailable

我想知道为什么会发生这个错误以及我需要做什么来解决这个问题。 真的很感谢所有的帮助。 问候, 阿潘

0 个答案:

没有答案