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

无GPU支持下TensorFlow加载MNIST数据集遇IOError求助

解决无GPU TensorFlow环境下MNIST数据集加载的IOError问题

我之前在旧版TensorFlow(搭配Python2.7)环境里也踩过这个MNIST数据集加载的坑,结合你遇到的情况,给你几个可行的解决方案:

方案一:手动下载数据集到指定目录

这是最直接有效的方法,绕过下载环节的网络问题:

  • 准备好MNIST所需的4个压缩文件:train-images-idx3-ubyte.gz、train-labels-idx1-ubyte.gz、t10k-images-idx3-ubyte.gz、t10k-labels-idx1-ubyte.gz
  • 在你的代码同级目录下创建MNIST_data文件夹,把这4个文件放进去不要解压
  • 重新运行python DeepMNIST.py,TensorFlow的read_data_sets函数会自动读取本地的压缩文件,无需再下载

方案二:修改TensorFlow内置的mnist.py数据源URL

你提到的PR方案没生效,大概率是因为旧版TensorFlow的代码结构和PR不兼容,手动修改URL更靠谱:

  • 找到报错里的mnist.py文件路径:/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py
  • 打开这个文件,找到定义SOURCE_URL的行,把原URL替换为稳定的MNIST数据集镜像地址
  • 同时检查_maybe_download函数,确保它使用修改后的URL进行下载,保存后重新运行你的脚本

方案三:升级环境到Python3.x + 新版TensorFlow

Python2.7已经停止维护,旧版TensorFlow的input_data模块也早已被弃用,升级后能避免这类兼容性问题:

  • 切换到Python3.x环境,安装无GPU版本的TensorFlow:pip install tensorflow
  • 把原代码里的input_data.read_data_sets替换为新版API:
    import tensorflow as tf
    (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
    # 如需one-hot编码,可手动处理:
    y_train = tf.keras.utils.to_categorical(y_train, 10)
    y_test = tf.keras.utils.to_categorical(y_test, 10)
    
  • 新版Keras的加载API内置了备用数据源,稳定性更高

验证方法

修改完成后,重新执行python DeepMNIST.py,如果控制台没有再抛出IOError,且显示“Successfully downloaded/loaded MNIST data”类的提示,就说明问题解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:42:51