如何解决“ DataFrameIterator”对象没有属性“ num_classes”的问题?

时间:2019-09-15 09:23:00

标签: dataframe keras tf.keras

我正在使用tf.keras.preprocessing.image.ImageDataGenerator类加载训练图像。我选择使用flow_from_dataframe函数。但是,当我尝试使用num_classes创建图层时,出现错误:AttributeError:'DataFrameIterator'对象没有属性'num_classes'

    datagen=tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255.)

image_data=datagen.flow_from_dataframe(
dataframe=df[:1700],
directory='/tf/notebooks/2222/Face Images',
x_col="Filename",
y_col="Race",
batch_size=32,
#seed=42,
shuffle=True,
class_mode="categorical",
target_size=(224,224))

model = tf.keras.Sequential([
  feature_extractor_layer,
  layers.Dense(image_data.num_classes, activation='softmax')
])

model.summary()

1 个答案:

答案 0 :(得分:1)

flow_from_dataframe的情况下,您需要使用其他方法来获取类数:

例如: len(train_generator.class_indices)

所以您的代码应如下所示:

model = tf.keras.Sequential([
  feature_extractor_layer,
  layers.Dense(len(image_data.class_indices), activation='softmax')
])