caffe的python接口示例


import caffe #导入caffe的python接口
 
 
caffe.set_mode_gpu()  #设置成gpu模式或者设置成cpu模式 caffe.set_mode_cpu()
 
 
net = caffe.Classifier(
model_file='deploy prototxt文件路径',
pretrained_file='生成的二进制caffemodel模型的路径',
mean=np.load('均值文件的路径'),
raw_scale=255 #若使用的原始图像值在0-255,则保留该参数
) #至此,初始化caffe的分类器模型,保存到变量
 
 
nettransformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) # caffe.io.Transformer 是用于预处理的类。事先填写进行预处理的要求。
transformer.set_transpose('data', (2,0,1)) #将 高x宽x通道,转化为,通道x高x宽的格式
 
 
img=caffe.io.load_image('图片路径') #读取图像
newImg=transformer.preprocess('data',img ) #设置data层的数据,这里以单张图像为例。将读取的图像传入,获得按之前设置的预处理方式处理好的新图像(通道x高x宽)。
 
 
net.blobs['data'].reshape(图像数,原来训练时定义的通道数,训练时图像的高,训练时图像的宽) #
net.blobs['data'].data[...] = newImg #让网络模型的数据层获取预处理好的图像,要传入多张图像,参考numpy的教程,将图像堆叠成多维矩阵(图像数x通道x高x宽)。
 
out = net.forward() #让数据通过整个训练好的模型,前向传播
 
 
filters = net.params['层的名称,如文件中定义好的conv1'][0].data #获取指定层的filters
feat = net.blobs['conv1'].data #获取conv1层的特征图谱
prediction=out['loss'].argmax() #直接得到模型输出的最终结果
--------------------- 
作者:godissleeping 
来源:CSDN 
原文:https://blog.csdn.net/godissleeping/article/details/50475952 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/penghejuan2012/article/details/83375588