caffe训练(10)自己训练的caffemodel批量预测新图片--无其他参数(如准确率等)

.py文件的python代码如下

#coding=utf-8

#作用:可以用来批处理图片进行分类

import os
import caffe
import numpy as np

root='D:/caffe-master/' #根目录
deploy=root+'zzfl/deploy.prototxt'     #deploy文件的路径
caffe_model=root+'zzfl/fenlei__iter_40000.caffemodel.h5' #caffe_model的路径
mean_file=root+'zzfl/mean.npy'    #mean_file的路径--注意,在python中要将mean.binaryproto转换为mean.npy格式

labels_filename=root+'zzfl/labels.txt' #sysset_words.txt的路径

#预读待分类的图片
import os
dir=root+'zzfl/val/'
filelist=[]
filenames=os.listdir(dir)  #返回指定目录下的所有文件和目录名
for fn in filenames:

    fullfilename=os.path.join(dir,fn) #os.path.join--拼接路径
    filelist.append(fullfilename) #filelist里存储每个图片的路径
net=caffe.Net(deploy,caffe_model,caffe.TEST)  #加载model和network
#图片预处理设置

transformer=caffe.io.Transformer({'data':net.blobs['data'].data.shape})  #设定图片的格式(1,3,28,28)
transformer.set_transpose('data',(2,0,1)) #改变维度的顺序,由原始图片(28,28,3)变为(3,28,28)
transformer.set_mean('data',np.load(mean_file).mean(1).mean(1)) #减去均值
transformer.set_raw_scale('data',255)  #缩放到[0,255]之间
transformer.set_channel_swap('data',(2,1,0))  #交换通道,将图片由RGB变成BGR
 
#加载图片
for i in range(0,len(filelist)):
    img=filelist[i]   #获取当前图片的路径
    print filenames[i]    #打印当前图片的名称     
    im=caffe.io.load_image(img) #加载图片
    net.blobs['data'].data[...]=transformer.preprocess('data',im) #执行上面的预处理操作,并将图片载入到blob中     

#执行测试
    out=net.forward()     
    labels=np.loadtxt(labels_filename,str,delimiter='/t') #读取类别名称文件
    prob=net.blobs['prob'].data[0].flatten()   #取出最后一层(prob)属于某个类标的概率值,'prob'为最后一层的名称    
    #print prob

    index1=prob.argsort()[-1]  #获取最大概率值对应的index
    index2=prob.argsort()[-2]  #获取第二大概率值对应的index
    index3=prob.argsort()[-3]  #获取第三大概率值对应的index
    index4=prob.argsort()[-4]  #获取第四大概率值对应的index
     
    print labels[index1],'--',prob[index1]   #输出label--prob
    print labels[index2],'--',prob[index2]
    print labels[index3],'--',prob[index3]
    print labels[index4],'--',prob[index4]
  • 运行结果
    在这里插入图片描述

  • 同时运行中有可能会爆出警告,如下图:

在这里插入图片描述
具体原因也在找,如果有大神遇到过类似问题已经解决,欢迎留言探讨!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值