调用mnist.train_images()时触发HTTPError: Forbidden错误的求助
调用mnist.train_images()时触发HTTPError: Forbidden错误的求助
嘿,我之前也踩过这个坑!这是因为mnist库默认依赖的MNIST数据集下载链接现在访问被限制了,导致没法正常拉取数据。给你几个实用的解决办法:
办法一:手动下载数据集后本地加载
- 先找到MNIST的官方数据集文件(包括
train-images-idx3-ubyte.gz、train-labels-idx1-ubyte.gz等你需要的文件),把它们下载到本地。 - 找到mnist库的默认数据缓存目录,一般是你用户目录下的
.mnist文件夹,或者Anaconda环境中site-packages/mnist/data路径下。 - 把下载好的文件放到这个目录里,再运行你的代码,就会直接读取本地文件,不用再尝试下载了。
办法二:修改mnist库的下载链接
- 找到你Anaconda环境里mnist库的核心文件:
~/anaconda3/Lib/site-packages/mnist/__init__.py(路径根据你的实际环境调整)。 - 打开这个文件,找到定义基础下载地址的行,通常是类似
BASE_URL = 'http://yann.lecun.com/exdb/mnist/'的代码。 - 把这个地址替换成更稳定的数据源,比如
BASE_URL = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'。 - 保存文件后重新运行你的代码,应该就能顺利下载数据集了。
办法三:改用TensorFlow/Keras加载MNIST
- 如果不想折腾原库的配置,直接用TensorFlow内置的MNIST加载方法,不仅更稳定,代码也简洁:
from tensorflow.keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data() - 这样能直接拿到训练图像数据,完全避开原链接的访问问题。
备注:内容来源于stack exchange,提问作者Miroslav Holub
相关产品推荐
相关产品推荐

