【发布时间】:2021-03-12 12:31:49
【问题描述】:
我如何计算由Classifier.predict_generator 分类的正确/错误图像的数量?我总共有 6000 个测试图像,每个类 1000 个图像(我的文件夹 test 有 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
【问题讨论】:
标签: python numpy matrix keras deep-learning