I know that decode_predictions() works for only imagenet dataset(1000 classes) for the models like VGG16 etc. But condiser my scenario.

My Scenario:

I used vgg16 pretrained model, and added my own weights.

enter image description here

So this turns out to be a non-Imagenet model. I have mentioned classes=9 as i trained my previous model with 9 classes only.

enter image description here

So now to find the predictions, i could use predict() method and then my print(answer) would give the corresponding class label. But actually i need the class name to be printed. Is that possible to get class name ?? If it is, can anyone explain me how.?


1 Answer 1


In Deep learning when you are performing prediction you will get prediction in your case it is an array with 9 probabilities in them. So first perform following operation on them.

import numpy as np

prediction = model.prediction(test_data) 
# prediction will contain [[0.6, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]]

prediction = np.argmax(prediction[0])
# Now predition hold the index of the (0.6) i.e max probability value

Now after that you should have a dictionary which contains key as 0, 1, 2, .. 8 and values as classname1, classname2, ...classname9

This is the way you will get the class name as output


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.