from __future__ import division
import numpy as np
import caffe
import timeit
from matplotlib import pyplot as plt

##################################################################################################
CAFFE_ROOT = '/home/test1/caffe'
MEAN_FILE = CAFFE_ROOT+'/python/caffe/imagenet/ilsvrc_2012_mean.npy'
TEST_FILE = CAFFE_ROOT +'/data/test1/val.txt'
TEST_FOLDER = CAFFE_ROOT+'/data/test1/jpg/'
LABLE_FILE = CAFFE_ROOT+ '/data/test1/labels.txt'
MODEL_FILE = CAFFE_ROOT+ '/models/test1/deploy.prototxt'
PRETRAINED = CAFFE_ROOT + '/models/test1/snapshout/test1_train_iter_2000.caffemodel'

##################################################################################################
files =[] 
classes = []
lines = []
labels = []
with open(TEST_FILE) as f:
    lines = f.readlines()
    
with open(LABLE_FILE) as f:
    labels = f.readlines()
   
for i in range(len(lines)) :
    fileName,classLabel = lines[i].split()
    files.append(fileName)
    classes.append(classLabel)


##################################################################################################
net = caffe.Classifier(MODEL_FILE, PRETRAINED,
                       mean=np.load(MEAN_FILE).mean(1).mean(1),
                       channel_swap=(2,1,0),
                       raw_scale=255,
                       image_dims=(256, 256))
caffe.set_mode_gpu()
##################################################################################################
perf = 0
counter =0
print 'total test sample', len(files) 
start_time = timeit.default_timer()
for i in range(len(files)):
    print TEST_FOLDER+files[i]
    input_image = caffe.io.load_image(TEST_FOLDER+files[i])
    #print input_image
    prediction = net.predict([input_image])
    #########
    #print prediction