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

加载cifar10数据集先后报SSL和权限错误如何解决

正确加载CIFAR-10数据集的解决方案

方案1:修复SSL报错直接调用官方接口(最便捷)

第一个SSL证书验证失败是因为目标站点的证书信任问题,只需在加载数据前添加两行代码关闭SSL验证即可直接下载加载,无需手动下载数据集:

import ssl
# 临时关闭全局SSL验证
ssl._create_default_https_context = ssl._create_unverified_context
from tensorflow.keras import datasets
(X_train, y_train), (X_test, y_test) = datasets.cifar10.load_data()

方案2:手动下载后的正确加载方法

你之前的操作存在两处问题:一是修改了下载文件的默认名称,keras原生load_data会默认查找名为cifar-10-python.tar.gz的文件,你重命名后会导致文件识别失败;二是系统用户目录的权限限制触发了PermissionError。可按以下步骤修复:

  • 第一步:修复权限问题
    右键点击C:\Users\SAHAN\.keras\datasets文件夹,选择「属性」-「安全」,给当前登录用户添加「完全控制」权限,保存后生效。如果仍有权限报错,可将下载的压缩包移动到你自己的项目目录下,避免系统目录的权限限制。
  • 第二步:两种加载方式二选一
    1. 继续使用keras原生接口:将你下载的压缩包重命名回原本的cifar-10-python.tar.gz,放到datasets目录下直接调用datasets.cifar10.load_data()即可
    2. 自定义代码直接读取(兼容性最高,无需依赖keras的路径规则):
import pickle
import tarfile
import numpy as np

def load_cifar10(tar_path):
    with tarfile.open(tar_path, 'r:gz') as tar:
        # 加载训练集批次
        X_train, y_train = [], []
        for i in range(1,6):
            batch_file = tar.extractfile(f'cifar-10-batches-py/data_batch_{i}')
            batch_data = pickle.load(batch_file, encoding='latin1')
            X_train.append(batch_data['data'])
            y_train.append(batch_data['labels'])
        X_train = np.concatenate(X_train).reshape(-1,3,32,32).transpose(0,2,3,1)
        y_train = np.concatenate(y_train).reshape(-1,1)
        
        # 加载测试集
        test_file = tar.extractfile('cifar-10-batches-py/test_batch')
        test_data = pickle.load(test_file, encoding='latin1')
        X_test = test_data['data'].reshape(-1,3,32,32).transpose(0,2,3,1)
        y_test = np.array(test_data['labels']).reshape(-1,1)
    return (X_train, y_train), (X_test, y_test)

# 替换为你的压缩包实际路径,比如放在项目根目录就写相对路径
(X_train, y_train), (X_test, y_test) = load_cifar10('./cifar-10-python.tar.gz')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:45:06