#!/usr/bin/python
import matplotlib.pyplot as plt
import numpy as np
#matplotlib inline
caffe_root = '/home/lily/caffe-master/caffe-master/'
import sys
sys.path.insert(0,caffe_root + 'python')
import caffe
# Set the right path to your model file, pretrained model
# and the image you would like to classify.
MODEL_FILE = '/home/lily/caffe-master/caffe-master/models/bvlc_reference_caffenet/deploy.prototxt'
PRETRAINED = '/home/lily/caffe-master/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'
IMAGE_FILE = '/home/lily/Downloads/lena.png'
#caffe.set_mode_cpu() #close
net = caffe.Classifier(MODEL_FILE, PRETRAINED,image_dims=(256, 256),
gpu=False,mean=None,
input_scale=None, raw_scale=255,
channel_swap=(2,1,0))
#image_dims=(256, 256)
#gpu=False,mean=np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1),
#input_scale=None,raw_scale=255,
#channel_swap=(2,1,0))
#in my project, mean has to be closed, otherwise error! I don't know why
input_image = caffe.io.load_image(IMAGE_FILE)
plt.figure(1)
plt.imshow(input_image)
prediction = net.predict([input_image])
print 'prediction shape:', prediction[0].shape
plt.figure(2)
plt.plot(prediction[0])
print 'predicted class:',prediction[0].argmax()
#prediction = net.predict([input_image], oversample=False)
#print 'prediction shape:', prediction[0].shape
#plt.plot(prediction[0])
#print 'predicted class:', prediction[0].argmax()
plt.show() #this is very important