You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中下载Torchvision的CIFAR10数据集时遇SSLCertVerificationError

CIFAR10数据集下载时SSLCertVerificationError错误解决

问题场景

运行以下PyTorch代码下载CIFAR10数据集时,触发了SSL证书验证错误:

from torchvision import datasets
data_path= 'dataset_cifar/'
cifar10=datasets.CIFAR10(data_path,train=True,download=True)
cifar10_val=datasets.CIFAR10(data_path,train=False,download=True)

报错信息:

---------------------------------------------------------------------------
SSLCertVerificationError                  Traceback (most recent call last)
C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\urllib\request.py in do_open(self, http_class, req, **http_conn_args)
   1345             try:
-> 1346                 h.request(req.get_method(), req.selector, req.data, headers,
   1347                           encode_chunked=req.has_header('Transfer-encoding'))

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\http\client.py in request(self, method, url, body, headers, encode_chunked)
   1284         """Send a complete request to the server."""
-> 1285         self._send_request(method, url, body, headers, encode_chunked)
   1286 

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\http\client.py in _send_request(self, method, url, body, headers, encode_chunked)
   1330             body = _encode(body, 'body')
-> 1331         self.endheaders(body, encode_chunked=encode_chunked)
   1332 

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\http\client.py in endheaders(self, message_body, encode_chunked)
   1279             raise CannotSendHeader()
-> 1280         self._send_output(message_body, encode_chunked=encode_chunked)
   1281 

C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\http\client.py in _send_output(self, message_body, encode_chunked)
   1039         del self._buffer[:]
-> 1040         self.send(msg)
...
-> 1349                 raise URLError(err)
   1350             r = h.getresponse()
   1351         except:

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)>

解决方法

方法1:临时禁用SSL证书验证

在代码开头添加SSL上下文设置,跳过证书验证:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

from torchvision import datasets
data_path= 'dataset_cifar/'
cifar10=datasets.CIFAR10(data_path,train=True,download=True)
cifar10_val=datasets.CIFAR10(data_path,train=False,download=True)

注意:此方法会降低网络请求安全性,仅建议在测试环境使用。

方法2:手动下载数据集

  1. 获取CIFAR10官方数据集压缩包(包含训练集和测试集的Python格式压缩文件)
  2. 将压缩包解压到代码中指定的dataset_cifar/目录下
  3. 修改代码中的download参数为False,避免重复下载:
from torchvision import datasets
data_path= 'dataset_cifar/'
cifar10=datasets.CIFAR10(data_path,train=True,download=False)
cifar10_val=datasets.CIFAR10(data_path,train=False,download=False)

方法3:检查网络环境

  • 关闭当前使用的代理工具,尝试重新运行代码
  • 切换到稳定的网络环境(如关闭VPN、使用本地网络),避免网络拦截导致证书验证失败

内容的提问来源于stack exchange,提问作者Hemanth Harikrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 08:45:07