from simplepreprocessor import SimplePreprocessor from meanpreprocessor import MeanPreprocessor from ranked import rank5_accuracy from hdf5datasetgenerator import HDF5DatasetGenerator from keras.models import load_model import json means = json.loads(open(config.DATASET_MEAN).read()) sp = SimplePreprocessor(64, 64) mp = MeanPreprocessor(means["R"], means["G"], means["B"]) iap = ImageToArrayPreprocessor() testGen = HDF5DatasetGenerator(config.TRAIN_HDF5, 64, preprocessors=[sp, mp, iap], classes=config.NUM_CLASSES) print("[INFO] loading model...") model = load_model(config.MODEL_PATH) print("[INFO] predictiong on test data...") preds = model.predict_generator(testGen.generator(), steps=testGen.numImages // 64, max_queue_size=64 * 2) (rank_1, rank_5) = rank5_accuracy(preds, testGen.db["labels"]) print("[INFO] rank-1:{:.2f}".format(rank_1 * 100)) print("[INFO] rank-5:{:.2f}".format(rank_5 * 100)) testGen.close()
from ranked import rank5_accuracy import argparse import pickle import h5py ap = argparse.ArgumentParser() ap.add_argument("-d", "--db", required=True, help="path HDF5 database") ap.add_argument("-m", "--model", required=True, help="path to pre-trained model") args = vars(ap.parse_args()) print("[INFO] loading pre-trained model...") model = pickle.loads(open(args["model"], "rb").read()) db = h5py.File(args["db"], "r") i = int(db["labels"].shape[0] * 0.75) print("[INFO] predicting...") preds = model.predict_proba(db["feature"][i:]) (rank1, rank5) = rank5_accuracy(preds, db["labels"][i:]) print("[INFO] rank-1:{:.2f}%".format(rank1 * 100)) print("[INFO] rank-5:{:.2f}%".format(rank5 * 100)) db.close()
required=True, help="path to HDF5 database") parser.add_argument("-m", "--model", required=True, help="path to pretrained model") args = vars(parser.parse_args()) ## load pre-trained model print("[INFO] loading pre-trained model...") with open(args["model"], "rb") as f: model = pickle.loads(f.read()) f.close() ## open HDF5 file to retrieve features print("[INFO] loading extracted features...") db = h5py.File(args["database"], "r") index = int(db["labels"].shape[0] * 0.75) """ use pre-trained model to predict Probs! output rank1 & rank5 accuracy; """ print("[INFO] predicting...") preds = model.predict_proba(db["features"][index:]) rank1_acc, rank5_acc = rank5_accuracy(preds, db["labels"][index:]) print("[INFO] rank-1 acc = {:.2f}%".format(rank1_acc * 100)) print("[INFO] rank-5 acc = {:.2f}%".format(rank5_acc * 100)) ## close database! db.close()
cp = CropPreprocessor(227, 227) iap = ImageToArrayPreprocessor() print("[INFO] loading model...") model = load_model(config.MODEL_PATH) print("[INFO] predicting on test data(no crop)...") testGen = HDF5DatasetGenerator(config.TEST_HDF5, 64, preprocessors=[sp, mp, iap], classes=2) predictions = model.predict_generator(testGen.generator(), steps=testGen.numImages // 64, max_queue_size=64 * 2) (rank_1, _) = rank5_accuracy(predictions, testGen.db["labels"]) print("[INFO] rank-1:{:.2f}%".format(rank_1 * 100)) testGen.close() testGen = HDF5DatasetGenerator(config.TEST_HDF5, 64, preprocessors=[mp], classes=2) predictions = [] widgets = [ "Evaluating:", progressbar.Percentage(), " ", progressbar.Bar(), " ", progressbar.ETA() ]