如何计算正确/错误分类的图像数量Classifier.predict_generator
?我总共有6000张测想像,每类1000张图像(我的文件夹测试有6个代表这6个类的子文件夹)。
model_path = "Model.hdf5"
Classifier: Model = load_model(model_path)
mainDataPath = "donnees/"
testPath = mainDataPath + "test"
number_images = 6000
number_images_class_0 = 1000
number_images_class_1 = 1000
number_images_class_2 = 1000
number_images_class_3 = 1000
number_images_class_4 = 1000
number_images_class_5 = 1000
image_scale = 200
images_color_mode = "rgb" # grayscale or rgb
test_data_generator = ImageDataGenerator(rescale=1. / 255)
test_itr = test_data_generator.flow_from_directory(
testPath,# place des images
target_size=(image_scale, image_scale), # taille des images
class_mode="categorical",# Type de classification
shuffle=False,# pas besoin de les boulverser
batch_size=1,# on classe les images une e la fois
color_mode=images_color_mode)# couleur des images
(x, y_true) = test_itr.next()
# Normalize Data
max_value = float(x.max())
x = x.astype('float32') / max_value
# Les classes correctes des images (1000 pour chaque classe) -- the ground truth
y_true = np.array([0] * number_images_class_0+
[1] * number_images_class_1+
[2] * number_images_class_2+
[3] * number_images_class_3+
[4] * number_images_class_4+
[5] * number_images_class_5)
test_eval = Classifier.evaluate_generator(test_itr, verbose=1)
print('>Test loss (Erreur):', test_eval[0])
print('>Test precision:', test_eval[1])
predicted_classes = Classifier.predict_generator(test_itr, verbose=1)
predicted_classes_perc = np.round(predicted_classes.copy(), 4)
predicted_classes = np.round(predicted_classes) # on arrondie le output
由于你已按样本顺序进行设置shuffle=False
,test_itr
因此数据生成器不会更改它;因此,地面真理将是y_true
你创造的基础。
从预测的概率中获取预测的类别,然后使用sklearn(或其他类似方法)查找准确性得分。
from sklearn.metrics import accuracy_score
predicted_classes = Classifier.predict_generator(test_itr, verbose=1)
y_pred = np.argmax(predicted_classes , axis=1)
accuracy_score(y_true.flatten(), y_pred.flatten())
但是我的问题是如何正确和不正确地分类输出图像数量
我已经有准确性
@Hazel您认为这
accuracy score
意味着什么?0.5
100个样本的准确度意味着正确分类了50个,错误分类了50个。即correct = accuracy_score*no:of samples
和incorrect = no:of samples - correct
没错,我什至没有想到这个快捷方式。顺便说一句,您知道如何打印该分类器的热图吗?