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

关于ImageDataGenerator无class_indices属性及1.4版本是否移除该属性的疑问

关于ImageDataGenerator的class_indices属性问题解答

首先得澄清一个很容易踩的坑:ImageDataGenerator实例本身根本就没有class_indices这个属性!你遇到的报错完全是因为找错地方啦——这个属性其实是属于ImageDataGenerator调用flow_from_directory()(或者其他类似生成数据流的方法)后返回的迭代器对象(比如DirectoryIterator),而不是生成器本身。

至于你问的Keras 1.4版本是否移除了这个属性?答案是完全没有,而且这个属性从引入之后一直保留到后续版本里。官方文档里提到的class_indices,其实也是针对flow_from_directory()返回的那个迭代器,只是文档表述可能让你误以为是ImageDataGenerator自带的,这才产生了误解。

给你举个正确使用的例子,一看就明白:

from keras.preprocessing.image import ImageDataGenerator

# 先创建ImageDataGenerator实例
data_generator = ImageDataGenerator(rescale=1. / 255)

# 重点:调用flow_from_directory得到迭代器,这个迭代器才有class_indices
train_data_iterator = data_generator.flow_from_directory(
    'your_train_directory',
    target_size=(224, 224),
    batch_size=32,
    class_mode='categorical'
)

# 在这里正确获取类别索引映射
print(train_data_iterator.class_indices)

如果你的代码里是直接写data_generator.class_indices,那肯定会触发你遇到的那个错误,记住找对对象就好啦。

内容的提问来源于stack exchange,提问作者Valentin H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:30:29