我正在使用model.fit_generator来训练并获取我的二元(两类)模型的结果,因为我直接从文件夹中提供输入图像。在这种情况下,如何获得混淆矩阵(TP、TN、FP、FN),因为通常我使用sklearn.metrics的confusion_matrix命令来获得它,该命令需要预测和实际标签。但是在这里,我没有这两个标签。也许我可以通过predict=model.predict_generator(validation_generator)命令计算预测标签。但我不知道我的模型是如何从我的图像中获取输入标签的。我的输入文件夹的一般结构为:
train/
class1/
img1.jpg
img2.jpg
........
class2/
IMG1.jpg
IMG2.jpg
test/
class1/
img1.jpg
img2.jpg
........
class2/
IMG1.jpg
IMG2.jpg
........
而我的一些代码块是:
train_generator = train_datagen.flow_from_directory('train',
target_size=(50, 50), batch_size=batch_size,
class_mode='binary',color_mode='grayscale')
validation_generator = test_datagen.flow_from_directory('test',
target_size=(50, 50),batch_size=batch_size,
class_mode='binary',color_mode='grayscale')
model.fit_generator(
train_generator,steps_per_epoch=250 ,epochs=40,
validation_data=validation_generator,
validation_steps=21 )
因此,上述代码自动输入了两个类别,但我不知道它将哪个视为类别0,哪个视为类别1。