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

tensorflow.keras.datasets.mnist报错has no attribute 'read_data_sets'怎么解决

报错触发代码:

import tensorflow.keras.datasets.mnist as input_data
mnist = input_data.read_data_sets("MNIST-data", one_hot=True)

报错信息:AttributeError: module 'tensorflow.keras.datasets.mnist' has no attribute 'read_data_sets'

报错产生原因
  • 你调用的read_data_sets是TensorFlow 1.x版本专属的旧接口,原本归属tensorflow.examples.tutorials.mnist模块,你当前导入的tensorflow.keras.datasets.mnist是Keras生态提供的数据集加载模块,本身就不包含该接口。
  • TensorFlow 2.x版本已全面移除1.x版本的tutorials相关工具包,就算你按1.x的路径导入模块也会找不到该方法。
解决方案

方案1:使用TensorFlow 2.x官方推荐的原生Keras接口(推荐)

该方案符合当前TensorFlow的开发规范,无需兼容处理即可直接运行,示例代码如下:

import tensorflow as tf

# 加载MNIST数据集,返回训练集、测试集的特征与标签
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# 和旧接口默认逻辑对齐,对像素值做0-1归一化
x_train, x_test = x_train / 255.0, x_test / 255.0

# 如果你需要和旧接口一致的one_hot格式标签,可通过如下方法转换
y_train_onehot = tf.one_hot(y_train, depth=10)
y_test_onehot = tf.one_hot(y_test, depth=10)

方案2:兼容旧版1.x代码(临时过渡用,不推荐长期使用)

如果你需要保留旧代码的read_data_sets调用逻辑,可以开启TensorFlow的v1兼容模式运行,示例代码如下:

import tensorflow.compat.v1 as tf
# 禁用TensorFlow 2.x的默认行为,开启1.x兼容模式
tf.disable_v2_behavior()
from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("MNIST-data", one_hot=True)

内容的提问来源于stack exchange,提问作者bassem derbali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:07