caffe(1)用训练好的模型对新图片分类

这应该是意见特别简单的项目,但是我却弄了好久(大哭)。用训练好的模型检查新图片我在这也卡了好久,总是提示找不到文件,最后我把所有的文件放到了一个目录下。最后终于成功了,表示很开心。
代码没有什么变化:

import numpy as np
import matplotlib.pyplot as plt
import sys
caffe_root = 'home/ubuntu/caffe/'
sys.path.append("/home/ubuntu/caffe/python")
sys.path
import caffe
caffe.set_mode_gpu()
modle_def =  'deploy.prototxt'
modle_pretrained = 'data_iter_20000.caffemodel'

net = caffe.Classifier(modle_def,modle_pretrained,
                       mean = np.load('mean.npy').mean(1).mean(1),
                       channel_swap = (2,1,0),
                       raw_scale =255,
                       image_dims=(256,256))
image_lables_filename = 'labels.txt'
lables = np.loadtxt(image_lables_filename,str,delimiter = '\t')


img = caffe.io.load_image('test/hu.jpeg')
prediction = net.predict([img])
str_gender = lables[prediction[0].argmax()]
print 'predicted class:',prediction[0].argmax()
print str_gender
plt.imshow(img)
plt.title(str_gender)
plt.show()

在这里需要把你的mean.binaryproto转为mean.npy这里也是要把程序和mean.binaryproto放到一个文件夹。
代码如下:

#!/usr/bin/python

import numpy as np
import sys
sys.path.append('/caffe/python')
import caffe

if len(sys.argv) != 3:
    print "Usage: python convert_protomean.py proto.mean out.npy"
    sys.exit()


blob = caffe.proto.caffe_pb2.BlobProto()
data = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( sys.argv[2] , out )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值