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
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