我们利用前面训练好的caffemodel模型和生成的deploy.prototxt文件,来对一个新的文件进行分类预测。
从mnist数据集中随便找一张图片,来进行实验:
import caffe
import numpy as np
root='/home/xxx/'
deploy=root + 'mnist/deploy.prototxt'
caffe_model=root + 'mnist/lenet_iter_9380.caffemodel'
img=root+'mnist/test/5/00008.png'
labels_filename = root + 'mnist/test/labels.txt'
net = caffe.Net(deploy,caffe_model,caffe.TEST)
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data', (2,0,1))
transformer.set_raw_scale('data', 255)
transformer.set_channel_swap('data', (2,1,0))
im=caffe.io.load_image(img)
net.blobs['data'].data[...] = transformer.preprocess('data',im)
out = net.forward()
labels = np.loadtxt(labels_filename, str, delimiter='\t')
prob= net.blobs['Softmax1'].data[0].flatten()
print prob
order=prob.argsort()[-1]
print 'the class is:',labels[order]