我曾经手动制作它,但我现在使用flow_from_directory用我自己的数据训练我的网络。我只有一个问题。当我制作model.predict()时,我怎么知道我的预测索引0是针对标签类别狗而索引1是针对类别猫?
我正在使用的代码如下。
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
train_images_path,
target_size=(64, 64),
batch_size=batch_size)
validation_generator = test_datagen.flow_from_directory(
validate_images_path,
target_size=(64, 64),
batch_size=batch_size)
early_stopping = keras.callbacks.EarlyStopping(monitor='val_acc', min_delta=0, patience=3, verbose=1, mode='auto')
history = model.fit_generator(
train_generator,
steps_per_epoch=1700,
epochs=epochs,
verbose=1,
callbacks=[early_stopping],
validation_data=validation_generator,
validation_steps=196
)
我想知道的是对图像与地面实况标签。
谢谢
答案 0 :(得分:8)
您可以使用class_indices属性生成生成器生成的每个类的索引。
print(validation_generator.class_indices)
...简单
答案 1 :(得分:1)
非常简单。当您预处理数据时,只需用一些特定的整数替换类标签(您可以将其称为id)。因此,当您从模型的输出计算损失或准确度时,只需将预测与基本事实按整数标签(id)进行比较。
如果您需要标签文本,可以从id(整数)中取回。
答案 2 :(得分:1)
收集数据时,您可以定义数据。没有规则。但一个简单的检查方法是:
这将回答你的问题。
要从生成器中获取一个样本,您可以看到以下问题:How to get one value from a generator in Python?
如Keras documentation中所定义,生成器输出是(输入,目标)的元组