0

I have used CNN model for binary image classification. I am able to get accuracy and loss but don't know how to get confusion matrix of such model. Also how graph can be plotted of accuracy and loss?

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)
  • Does this answer your question? [Get confusion matrix from a Keras model](https://stackoverflow.com/questions/56458526/get-confusion-matrix-from-a-keras-model) – venkata krishnan Jun 02 '20 at 09:25

1 Answers1

0

The recommended way to plot loss and accuracy when training a model with Tensorflow and Keras is using Tensorboard (https://www.tensorflow.org/tensorboard/get_started)

Tensorflow also provides a function to compute the confusion matrix : https://www.tensorflow.org/api_docs/python/tf/math/confusion_matrix

Valerian G
  • 31
  • 3