Classification:Instant Recognition with caffe
对官方的教程进行一些解释
import caffe
caffe.set_mode_cpu()
net=caffe.Net(model_def,
model_weights,
caffe.TEST)
import numpy as np
mu=np.load(file)
mu.mean(1).mean(1)
print 'mean-subtracted values:',zip('BGR',mu)
transformer=caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data',(2,0,1))
transformer.set_mean('data',mu)
transformer.set_raw_scale('data',255)
transformer.set_channel_swap('data',(2,1,0))
net.blobs['data'].reshape(50,3,227,227)
image=caffe.io.load_image(file)
transformed_image=transformer.preprocess('data',image)
plt.imshow(image)
net.blobs['data'].data[...]=transfarmed_image
output=net.forward()
output_prob=output['prob'][0]
print 'predicted class is: ',output_prob.argmax()
for layer_name,blob in net.blobs.iteritems():
print layer_name+'\t'+str(blob.data.shape)
for layer_name,param in net.params.iteritems():
print layer_name+'\t'+str(param[0].data.shape,str(param[1].data.shape)