【问题标题】:How to get confusion matrix of a CNN model如何获得CNN模型的混淆矩阵
【发布时间】:2020-09-20 17:34:07
【问题描述】:

我使用 CNN 模型进行二值图像分类。我能够获得准确性和损失,但不知道如何获得这种模型的混淆矩阵。还有如何绘制准确率和损失的图表?

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D
import pickle
import numpy as np

X = np.array(pickle.load(open("X.pickle","rb")))
Y = np.array(pickle.load(open("Y.pickle","rb")))

#scaling our image data
X = X/255.0

model = Sequential()
#model.add(Conv2D(64 ,(3,3), input_shape = X.shape[1:]))
model.add(Conv2D(64 ,(3,3), input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2,2)))

model.add(Conv2D(128 ,(3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2,2)))

model.add(Conv2D(256 ,(3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2,2)))

model.add(Conv2D(512 ,(3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size = (2,2)))

model.add(Flatten())

model.add(Dense(2048))
model.add(Activation("relu"))

model.add(Dropout(0.5))

model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss="binary_crossentropy",
             optimizer = "adam",
             metrics = ['accuracy'])

model.fit(X, Y, batch_size=32, epochs = 15, validation_split=0.1)

【问题讨论】:

标签: python machine-learning confusion-matrix conv-neural-network


【解决方案1】:

使用 Tensorflow 和 Keras 训练模型时绘制损失和准确率的推荐方法是使用 Tensorboard (https://www.tensorflow.org/tensorboard/get_started)

Tensorflow 还提供了计算混淆矩阵的函数:https://www.tensorflow.org/api_docs/python/tf/math/confusion_matrix

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 2021-10-25
    • 2021-08-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2020-03-09
    • 2018-11-22
    相关资源
    最近更新 更多