English 中文(简体)
SSLCertVerification 通过火rch学下载粉末数据集的错误
原标题:SSLCertVerificationError when downloading pytorch datasets via torchvision

我在把 CI-10数据集从粉碎机下载方面遇到麻烦。 似乎有些SSL错误,我不知道如何解释。 我也试图把根向其他各方面的人转变,但其中没有一个是行之有效的。 我很想知道,这是否在我结束发言时是一种许可类型,但我没有经验。 请大家帮助确定这一点!

执行守则如下:

trainset = torchvision.datasets.CIFAR10(root= ./data , train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=1)

本错误转载如下:

---------------------------------------------------------------------------
SSLCertVerificationError                  Traceback (most recent call last)
File C:ProgramDataMiniconda3envspDLliburllib
equest.py:1354, in AbstractHTTPHandler.do_open(self, http_class, req, **http_conn_args)
   1353 try:
-> 1354     h.request(req.get_method(), req.selector, req.data, headers,
   1355               encode_chunked=req.has_header( Transfer-encoding ))
   1356 except OSError as err: # timeout error

File C:ProgramDataMiniconda3envspDLlibhttpclient.py:1256, in HTTPConnection.request(self, method, url, body, headers, encode_chunked)
   1255 """Send a complete request to the server."""
-> 1256 self._send_request(method, url, body, headers, encode_chunked)

File C:ProgramDataMiniconda3envspDLlibhttpclient.py:1302, in HTTPConnection._send_request(self, method, url, body, headers, encode_chunked)
   1301     body = _encode(body,  body )
-> 1302 self.endheaders(body, encode_chunked=encode_chunked)

File C:ProgramDataMiniconda3envspDLlibhttpclient.py:1251, in HTTPConnection.endheaders(self, message_body, encode_chunked)
   1250     raise CannotSendHeader()
-> 1251 self._send_output(message_body, encode_chunked=encode_chunked)

File C:ProgramDataMiniconda3envspDLlibhttpclient.py:1011, in HTTPConnection._send_output(self, message_body, encode_chunked)
   1010 del self._buffer[:]
-> 1011 self.send(msg)
   1013 if message_body is not None:
   1014 
   1015     # create a consistent interface to message_body

File C:ProgramDataMiniconda3envspDLlibhttpclient.py:951, in HTTPConnection.send(self, data)
    950 if self.auto_open:
--> 951     self.connect()
    952 else:

File C:ProgramDataMiniconda3envspDLlibhttpclient.py:1425, in HTTPSConnection.connect(self)
   1423     server_hostname = self.host
-> 1425 self.sock = self._context.wrap_socket(self.sock,
   1426                                       server_hostname=server_hostname)

File C:ProgramDataMiniconda3envspDLlibssl.py:500, in SSLContext.wrap_socket(self, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, session)
    494 def wrap_socket(self, sock, server_side=False,
    495                 do_handshake_on_connect=True,
    496                 suppress_ragged_eofs=True,
    497                 server_hostname=None, session=None):
    498     # SSLSocket class handles server_hostname encoding before it calls
    499     # ctx._wrap_socket()
--> 500     return self.sslsocket_class._create(
    501         sock=sock,
    502         server_side=server_side,
    503         do_handshake_on_connect=do_handshake_on_connect,
    504         suppress_ragged_eofs=suppress_ragged_eofs,
    505         server_hostname=server_hostname,
    506         context=self,
    507         session=session
    508     )

File C:ProgramDataMiniconda3envspDLlibssl.py:1040, in SSLSocket._create(cls, sock, server_side, do_handshake_on_connect, suppress_ragged_eofs, server_hostname, context, session)
   1039             raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
-> 1040         self.do_handshake()
   1041 except (OSError, ValueError):

File C:ProgramDataMiniconda3envspDLlibssl.py:1309, in SSLSocket.do_handshake(self, block)
   1308         self.settimeout(None)
-> 1309     self._sslobj.do_handshake()
   1310 finally:

SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1131)

During handling of the above exception, another exception occurred:

URLError                                  Traceback (most recent call last)
Input In [8], in <module>
----> 1 trainset = torchvision.datasets.CIFAR10(root= ./data , train=True, download=True, transform=transform)
      2 trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=1)

File C:ProgramDataMiniconda3envspDLlibsite-packages	orchvisiondatasetscifar.py:66, in CIFAR10.__init__(self, root, train, transform, target_transform, download)
     63 self.train = train  # training set or test set
     65 if download:
---> 66     self.download()
     68 if not self._check_integrity():
     69     raise RuntimeError( Dataset not found or corrupted.  +
     70                          You can use download=True to download it )

File C:ProgramDataMiniconda3envspDLlibsite-packages	orchvisiondatasetscifar.py:144, in CIFAR10.download(self)
    142     print( Files already downloaded and verified )
    143     return
--> 144 download_and_extract_archive(self.url, self.root, filename=self.filename, md5=self.tgz_md5)

File C:ProgramDataMiniconda3envspDLlibsite-packages	orchvisiondatasetsutils.py:427, in download_and_extract_archive(url, download_root, extract_root, filename, md5, remove_finished)
    424 if not filename:
    425     filename = os.path.basename(url)
--> 427 download_url(url, download_root, filename, md5)
    429 archive = os.path.join(download_root, filename)
    430 print("Extracting {} to {}".format(archive, extract_root))

File C:ProgramDataMiniconda3envspDLlibsite-packages	orchvisiondatasetsutils.py:130, in download_url(url, root, filename, md5, max_redirect_hops)
    127     _download_file_from_remote_location(fpath, url)
    128 else:
    129     # expand redirect chain if needed
--> 130     url = _get_redirect_url(url, max_hops=max_redirect_hops)
    132     # check if file is located on Google Drive
    133     file_id = _get_google_drive_file_id(url)

File C:ProgramDataMiniconda3envspDLlibsite-packages	orchvisiondatasetsutils.py:78, in _get_redirect_url(url, max_hops)
     75 headers = {"Method": "HEAD", "User-Agent": USER_AGENT}
     77 for _ in range(max_hops + 1):
---> 78     with urllib.request.urlopen(urllib.request.Request(url, headers=headers)) as response:
     79         if response.url == url or response.url is None:
     80             return url

File C:ProgramDataMiniconda3envspDLliburllib
equest.py:222, in urlopen(url, data, timeout, cafile, capath, cadefault, context)
    220 else:
    221     opener = _opener
--> 222 return opener.open(url, data, timeout)

File C:ProgramDataMiniconda3envspDLliburllib
equest.py:525, in OpenerDirector.open(self, fullurl, data, timeout)
    522     req = meth(req)
    524 sys.audit( urllib.Request , req.full_url, req.data, req.headers, req.get_method())
--> 525 response = self._open(req, data)
    527 # post-process response
    528 meth_name = protocol+"_response"

File C:ProgramDataMiniconda3envspDLliburllib
equest.py:542, in OpenerDirector._open(self, req, data)
    539     return result
    541 protocol = req.type
--> 542 result = self._call_chain(self.handle_open, protocol, protocol +
    543                            _open , req)
    544 if result:
    545     return result

File C:ProgramDataMiniconda3envspDLliburllib
equest.py:502, in OpenerDirector._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

File C:ProgramDataMiniconda3envspDLliburllib
equest.py:1397, in HTTPSHandler.https_open(self, req)
   1396 def https_open(self, req):
-> 1397     return self.do_open(http.client.HTTPSConnection, req,
   1398         context=self._context, check_hostname=self._check_hostname)

File C:ProgramDataMiniconda3envspDLliburllib
equest.py:1357, in AbstractHTTPHandler.do_open(self, http_class, req, **http_conn_args)
   1354         h.request(req.get_method(), req.selector, req.data, headers,
   1355                   encode_chunked=req.has_header( Transfer-encoding ))
   1356     except OSError as err: # timeout error
-> 1357         raise URLError(err)
   1358     r = h.getresponse()
   1359 except:

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1131)>
最佳回答

取消 s核查。

import ssl
ssl._create_default_https_context = ssl._create_unverified_context
问题回答

为了取代破坏SSL的验证,我得以通过复制用Colab提供的下载链接并压缩这一链接来处理这个问题。

“entergraph

如果Colab能够达到这一目的,但你可以说,这简单不过是放弃工作。





相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...

热门标签