如何解决从sklearn获取MNIST数据集时的SSL证书过期错误(_ssl.c:1002)
解决fetch_openml获取MNIST数据集时的SSL证书错误
以下是几种可行的解决办法:
临时跳过SSL验证(快速解决,不推荐长期使用)
在调用fetch_openml时添加verify=False参数,直接跳过证书验证:from sklearn.datasets import fetch_openml mnist = fetch_openml('mnist_784', version=1, verify=False)注意:此方法会降低网络请求的安全性,仅作为临时测试方案使用。
更新本地CA证书
证书过期通常是因为本地根证书库未更新,根据你的操作系统执行对应操作:- Windows:打开「Internet选项」-「内容」-「证书」,点击「更新根证书」,或通过系统自动更新获取最新证书。
- macOS:找到你安装的Python路径(比如
/Applications/Python 3.11/),运行其中的Install Certificates.command脚本,更新Python的CA证书。 - Linux(Ubuntu/Debian):执行以下命令更新系统CA证书:
sudo apt-get update && sudo apt-get install --reinstall ca-certificates sudo update-ca-certificates
手动下载数据集后加载
直接下载MNIST_784的数据集文件(格式可选CSV或Pickle),然后本地加载:import pandas as pd # 假设下载的文件名为mnist_784.csv,放在当前目录 df = pd.read_csv('mnist_784.csv') X = df.drop('class', axis=1).values # 特征数据 y = df['class'].values # 标签数据
内容的提问来源于stack exchange,提问作者Evie
相关产品推荐
相关产品推荐

