【发布时间】:2019-03-13 11:01:07
【问题描述】:
我想为我的 CNN 模型构建一个混淆矩阵,代码如下:
classifier = Sequential()
classifier.add(Conv2D(32, (3, 3), input_shape=(64,64, 3),
activation='relu'))
classifier.add(MaxPooling2D(pool_size=(2, 2)))
classifier.add(Flatten())
classifier.add(Dense(units=1, activation='sigmoid'))
classifier.compile(optimizer='adam', loss='binary_crossentropy', metrics=
['accuracy'])
batch_size = 32
train_datagen = ImageDataGenerator(rescale=1. / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1. / 255)
training_set = train_datagen.flow_from_directory('x1' ,
target_size=(64,64),
batch_size=64,
class_mode='binary')
test_set = test_datagen.flow_from_directory('x2' ,
target_size=(64,64),
batch_size=64,
class_mode='binary')
ep=50
H=classifier.fit_generator(training_set,
steps_per_epoch=1204/batch_size,
epochs=ep,
validation_data=test_set,
validation_steps=408/batch_size,
)
validation_steps=408
混淆矩阵:
from sklearn.metrics import confusion_matrix
Y_pred = classifier.predict_generator(test_set,validation_steps//batch_size+1)
y_pred = np.argmax(Y_pred, axis=1)
print('Confusion Matrix')
print(confusion_matrix(test_set.classes, y_pred))
我收到了这个错误:
ValueError:发现样本数量不一致的输入变量: [408, 792]
我该怎么办?
【问题讨论】:
-
试试
model.predict_generator(test_generator,steps = len(test_set))并检查形状
标签: python keras confusion-matrix