无法绕过SSL证书验证失败:CIFAR-100数据集加载报错求助
解决CIFAR-100数据集加载时SSL证书过期问题
方法1:全局临时禁用SSL验证
之前的配置可能参数不全,试试用httr包覆盖全局SSL验证规则:
- 安装并加载
httr包:install.packages("httr") library(httr) - 执行配置命令关闭SSL验证:
set_config(config(ssl_verifypeer = 0L, ssl_verifyhost = 0L)) - 再运行数据集加载代码:
data <- dataset_cifar100("fine")
方法2:手动下载后本地加载(解决手动加载失败问题)
如果禁用SSL无效,直接本地处理数据集:
- 下载
cifar-100-python.tar.gz压缩包并解压到本地路径 - 用以下代码加载本地数据集:
library(keras) library(tensorflow) # 替换成你的解压文件夹绝对路径 local_dir <- "/你的解压文件路径/cifar-100-python" # 加载训练集和测试集 train_data <- read_cifar100(local_dir, label_mode = "fine", train = TRUE) test_data <- read_cifar100(local_dir, label_mode = "fine", train = FALSE) # 组合成和dataset_cifar100一致的返回结构 data <- list(train = train_data, test = test_data)
方法3:更新本地CA证书
如果是本地CA证书过期导致验证失败,手动更新证书:
- 下载最新的CA证书文件(cacert.pem)
- 运行代码替换本地证书:
library(openssl) # 替换为你下载的cacert.pem路径 file.copy("/你的证书文件路径/cacert.pem", cacert_path(), overwrite = TRUE)
更新后再尝试加载数据集。
内容的提问来源于stack exchange,提问作者Daniel Watson
相关产品推荐
相关产品推荐

