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

报错name 'datasets' is not defined,请求技术问题排查与解决

解决name 'datasets' is not defined报错问题

嘿,这个报错的原因其实很直白——你在代码里调用了datasets.read_train_sets(),但你的代码里既没有导入名为datasets的模块,也没有自己定义这个对象,Python找不到它,自然就抛出这个错误了。

下面给你两种实用的解决思路:

思路1:找回教程配套的datasets模块

很多图像分类的网络教程会自己写一个自定义的datasets.py脚本,用来封装读取本地图像数据集的逻辑。你需要:

  • 回到你参考的那个教程,找到配套的datasets.py文件
  • 把这个文件放到你的代码文件同一个目录下,或者确保它在Python的搜索路径里
  • 在代码开头添加导入语句:
    import datasets
    
  • 另外,你的代码里还没定义img_size变量,记得补上(比如img_size = 128,根据你需要的图像尺寸调整)

思路2:用Keras自带工具替代(更通用推荐)

如果找不到教程里的自定义模块,直接用Keras内置的ImageDataGenerator来读取本地数据集是更稳妥的方案,代码示例如下:

首先添加必要的导入:

from keras.preprocessing.image import ImageDataGenerator

然后替换掉data = datasets.read_train_sets(...)这部分代码:

# 先定义图像尺寸,根据你的需求调整
img_size = 128

# 训练数据生成器,支持数据增强提升模型泛化能力
train_datagen = ImageDataGenerator(
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    validation_split=0.2  # 直接从训练集拆分出20%作为验证集
)

# 读取训练集(注意你的train_path下需要有dogs、cats两个子文件夹,每个文件夹放对应类别的图片)
training_set = train_datagen.flow_from_directory(
    train_path,
    target_size=(img_size, img_size),
    batch_size=batch_size,
    class_mode='binary',
    subset='training'  # 指定为训练集
)

# 读取验证集
validation_set = train_datagen.flow_from_directory(
    train_path,
    target_size=(img_size, img_size),
    batch_size=batch_size,
    class_mode='binary',
    subset='validation'  # 指定为验证集
)

这样你就可以直接用training_set和validation_set来训练模型了,完全不用依赖那个自定义的datasets模块。

内容的提问来源于stack exchange,提问作者Jalaluddin Rumi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:43:21