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

TensorFlow中MNIST数据集未找到及模块导入报错解决求助

解决TensorFlow中MNIST导入错误与数据集未找到问题

我之前也碰到过一模一样的问题,别担心,这主要是因为TensorFlow版本更新后旧的教程模块被移除了,咱们一步步来解决:

一、解决no module named tensorflow.examples.tutorials.mnist错误

TensorFlow 2.x及后续版本已经完全弃用了tensorflow.examples.tutorials这个旧模块,官方现在推荐使用Keras内置的数据集接口来加载MNIST。你需要把原来的导入代码替换成:

import tensorflow as tf

之后用Keras的API来获取数据集,具体完整代码我放在下面的示例里。

如果因为特殊需求你必须使用TensorFlow 1.x的旧接口,那可以额外安装tensorflow-examples包:

pip install tensorflow-examples

但还是更建议迁移到2.x的官方推荐写法,兼容性和后续维护性更好。

二、解决MNIST数据集未找到的问题

当你使用Keras的load_data()方法时,第一次运行会自动下载数据集,但如果因为网络问题下载失败,就会出现数据集未找到的提示。这时候可以手动处理:

  • 手动下载MNIST数据集文件mnist.npz
  • 把文件放到对应的默认路径:
    • Windows系统:C:\Users\<你的用户名>\.keras\datasets\
    • Linux/macOS系统:~/.keras/datasets/
      之后再运行代码就能正常读取数据集了。

完整替代代码示例

替换你原来的旧代码,用这个官方推荐的写法:

import tensorflow as tf

# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()

# 预处理数据(比如归一化)
x_train = x_train / 255.0
x_test = x_test / 255.0

# 后续就可以继续构建你的模型了
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
])

# 编译并训练模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:42:24