I’ve been getting into Neural Networks recently and I understand a lot of the basics. As of recent I wrote a CNN with Keras that sorts images of cats and dogs into 37 different breeds. Making the model and getting the data was easy and I have now successfully trained the model to get about 60% accuracy according to Keras metrics. However I have no idea how to print the result when its making predictions.
Here is my model code:
model = k.models.Sequential([k.layers.Conv2D(150, (3, 3), activation='relu', input_shape=(224, 224, 3)),
k.layers.Conv2D(80, (3, 3), activation='relu', input_shape=(224, 224, 3)),
k.layers.Conv2D(50, (3, 3), activation='relu', input_shape=(224, 224, 3)),
k.layers.Conv2D(40, (3, 3), activation='relu', input_shape=(224, 224, 3)),
k.layers.Flatten(), k.layers.Dense(37, activation='softmax')])
model.compile(k.optimizers.RMSprop(learning_rate=.00001), loss='categorical_crossentropy', metrics=['accuracy'])
Here is my prediction code:
i = 1
k.models.load_model(checkpoint_filepath)
while i < 15:
try:
img = cv2.imread(files[random.randint(1, 150)])
unfiltered_image = img
img = np.invert(np.array([img]))
prediction = model.predict(img)
print(f"This image is probably a: {np.argmax(prediction)}")
plt.imshow(unfiltered_image, cmap=plt.cm.binary)
plt.show()
finally:
i = (i + 1)
I’ve seen a couple online tutorials use the argmax function which is why I’m using it there.
I’ve tried mapping certain argmax output values to certain breeds with if statements and that didn’t work for a multitude of reasons. I’ve tried mapping this on a confusion matrix but that didn’t work either. I’ve looked and made sure the neural network is working by looking at how the values change every step of the way and how certain numbers change when I feed it certain inputs. I’m really not sure how to convert these values the neural network is producing into an understandable output. How can I make these outputs sensible?
Crystal is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.