Windows下使用训练好的Caffe模型

使用训练好的Caffe模型可以直接通过调用Caffe的Classifier文件,具体代码如下:

import numpy as np
import matplotlib.pyplot as plt
import sys
import caffe

classes = ('others','qly') 

caffe_root = "D:/Micro_Caffe/caffe-master/" 
sys.path.insert(0, caffe_root + 'python')

root = "D:/Micro_Caffe/caffe-master/examples/myfile/AR/" 

prototxt = root + 'deploy.prototxt'
model = root + 'models/alexnet_face_iter_2000.caffemodel'

images = ['m-093-24.jpg','m-083-25.jpg','m-073-26.jpg','m-023-24.jpg','m-018-25.jpg','m-013-26.jpg']
im_class = []
caffe.set_mode_cpu()

net = caffe.Classifier(prototxt, model,
                       mean=np.load(root + 'mean.npy').mean(1).mean(1),
                       channel_swap=(2,1,0),
                       raw_scale=255,
                       image_dims=(256, 256))


for image in images:
    
    im = root + "val/" + image
     
    input_image = caffe.io.load_image(im)
    prediction = net.predict([input_image])     
    im_class.append(prediction[0].argmax())
    
    
for image in images:

    print '\nDemo for {}'.format(image) 
    print 'predicted class:', classes[im_class[images.index(image)]]
    

注意,如果训练网络时减去了均值文件,那么用图片进行demo也需要减均值文件,且必须是.npy文件,而不是训练时所用.binaryproto的二进制文件。

至于.binaryproto转.npy可以参考以下代码(convert_mean.py):

import numpy as np
import sys,caffe

if len(sys.argv)!=3:
    print "Usage: python convert_mean.py mean.binaryproto mean.npy"
    sys.exit()

blob = caffe.proto.caffe_pb2.BlobProto()
bin_mean = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(bin_mean)
arr = np.array( caffe.io.blobproto_to_array(blob) )
npy_mean = arr[0]
np.save( sys.argv[2] , npy_mean )

将该脚本放到和二进制均值文件相同路径下,通过cmd执行以下指令即可:

python convert_mean.py mean.binaryproto mean.npy
如果遇到ImportError: No module named _caffe,参考方法如下:

http://www.bubuko.com/infodetail-2014081.html

方法有两个,一是环境变量中新建名为PythonPath,值为:“Caffe根目录”+Build\x64\Release\pycaffe;

二是直接将Caffe根目录下\Build\x64\Release\pycaffe文件夹下的caffe文件夹复制到python的site-packge目录中。

亲测方法二成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值