Пример #1
0
def evaluate(model_root, model, images, image_size, seed, top_n=None):
    imagegen = image.ImageDataGenerator()
    test_gen = image.DirectoryIterator(os.path.join(images, 'testing'),
                                       imagegen,
                                       target_size=(image_size, image_size),
                                       seed=seed,
                                       shuffle=True)
    # Get classes sorted by their value
    classes = [
        x[0]
        for x in sorted(test_gen.class_indices.items(), key=lambda x: x[1])
    ]
    metrics_path = model_root.with_name(model_root.name + "_metrics.csv")
    cm_path = model_root.with_name(model_root.name + "_cm.png")
    metrics, _, _ = score_keras.evaluate_model(model,
                                               test_gen,
                                               classes,
                                               metrics_path,
                                               cm_path,
                                               top_n=top_n)
    class_map = model_root.with_name(model_root.name + "_classes.csv")
    try:
        with class_map.open('w', encoding='utf-8') as cmfp:
            cmfp.write('Class,ID\n')
            for i, c in enumerate(classes):
                cmfp.write('"{}",{}\n'.format(c, i))
    except:
        logger.warn('Failed to write class map file.')
    return classes, cm_path, metrics
Пример #2
0
def evaluate(model_root,
             model,
             images,
             image_size,
             num_batches,
             seed,
             top_n=None):
    imagegen = image.ImageDataGenerator()
    test_gen = image.DirectoryIterator(os.path.join(images, 'testing'),
                                       imagegen,
                                       target_size=(image_size, image_size),
                                       seed=seed,
                                       shuffle=True)
    # Get classes sorted by their value
    classes = [
        x[0]
        for x in sorted(test_gen.class_indices.items(), key=lambda x: x[1])
    ]
    metrics_path = model_root + "_metrics.csv"
    cm_path = model_root + "_cm.png"
    metrics, _, _ = score_keras.evaluate_model(model,
                                               test_gen,
                                               classes,
                                               num_batches,
                                               metrics_path,
                                               cm_path,
                                               top_n=top_n)
    return classes, cm_path, metrics