def get_per_class_accuracy(labels, preds):
    names = []
    accs = []
    dico = get_dico()
    inv_dico = invert_dico(dico)
    for value in set(labels):
        s = 0
        n = 0
        for i in range(len(labels)):
            if (labels[i] == value):
                n = n + 1
                if (preds[i] == value):
                    s = s + 1
        names.append(inv_dico.get(value))
        accs.append(s / n * 100, )
    return accs, names
示例#2
0
def get_pred(model, image_path, is_decaf6=False, top_k=1,bagging=DEFAULT_BAGGING,preprocessing=DEFAULT_PREPROCESSING):
    target_size = (224, 224)
    if is_decaf6:
        target_size = (227, 227)
    img = load_img(image_path, target_size=target_size)
    x = img_to_array(img)
    if bagging:
        pred = _bagging_predict(x, model,preprocessing=preprocessing)
    else:
        x = _preprocess_input(x,preprocessing=preprocessing)
        pred = model.predict(x[np.newaxis, ...])
    dico = get_dico()
    inv_dico = invert_dico(dico)
    args_sorted = np.argsort(pred)[0][::-1]
    preds = [inv_dico.get(a) for a in args_sorted[:top_k]]
    pcts = [pred[0][a] for a in args_sorted[:top_k]]
    return preds,pcts