python接口调用已训练好的caffe模型测试分类方法


Posted in Python onAugust 26, 2019

训练好了model后,可以通过python调用caffe的模型,然后进行模型测试的输出。

本次测试主要依靠的模型是在caffe模型里面自带训练好的结构参数:~/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel,以及结构参数

:~/caffe/models/bvlc_reference_caffenet/deploy.prototxt相结合,用python接口进行调用。

训练的源代码以及相应的注释如下所示:

# -*- coding: UTF-8 -*-
import os
import caffe
import numpy as np
root='/home/zf/caffe/'#指定根目录
deploy=root+'models/bvlc_reference_caffenet/deploy.prototxt'#结构文件
caffe_model=root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'
#已经训练好的model
 
dir =root+'examples/images/'#保存测试图片的集合
filelist=[]
filenames=os.listdir(dir)
for fn in filenames:
  fullfilename = os.path.join(dir,fn)
  filelist.append(fullfilename)
#filelist.append(fn)
def Test(img):
#加载模型
  net = caffe.Net(deploy,caffe_model,caffe.TEST)
 
# 加载输入和配置预处理
  transformer = caffe.io.Transformer({'data':net.blobs['data'].data.shape})
  transformer.set_mean('data', np.load('/home/zf/caffe/python/caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1))
  transformer.set_transpose('data', (2,0,1))
  transformer.set_channel_swap('data', (2,1,0))
  transformer.set_raw_scale('data', 255.0)
 
#注意可以调节预处理批次的大小
#由于是处理一张图片,所以把原来的10张的批次改为1
  net.blobs['data'].reshape(1,3,227,227)
 
#加载图片到数据层
  im = caffe.io.load_image(img)
  net.blobs['data'].data[...] = transformer.preprocess('data', im)
 
#前向计算
  out = net.forward()
 
# 其他可能的形式 : out = net.forward_all(data=np.asarray([transformer.preprocess('data', im)]))
 
#预测分类
  print out['prob'].argmax()
 
#打印预测标签
  labels = np.loadtxt("/home/zf/caffe/data/ilsvrc12/synset_words.txt", str, delimiter='\t')
  top_k = net.blobs['prob'].data[0].flatten().argsort()[-1]
  print 'the class is:',labels[top_k]
  f=file("/home/zhengfeng/caffe/examples/zf/label.txt","a")
  f.writelines(img+' '+labels[top_k]+'\n')
labels_filename=root +'data/ilsvrc12/synset_words.txt'
#循环遍历文件夹root+'examples/images/'下的所有图片
for i in range(0,len(filelist)):
  img=filelist[i]
  Test(img)

ps:主要有以下的文件需要说明

待测试的文件夹里面的图片数据为:

python接口调用已训练好的caffe模型测试分类方法

最后的输出结果如下:

以下是本人定义的label.txt文件写入的预测的数据:

python接口调用已训练好的caffe模型测试分类方法

如果在编译的时候出现import caffe error的话,说明没有导入caffe

Export PYTHONPATH=$PYTHONPATH:/home/zf/caffe/python,如果还是不行,可能是你的caffe的python接口未编译,cd /home/zf/caffe,然后执行make pycaffe,接着再测试。

以上这篇python接口调用已训练好的caffe模型测试分类方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
浅谈python数据类型及类型转换
Dec 18 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
Python matplotlib画曲线例题解析
Feb 07 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
Pytorch上下采样函数--interpolate用法
Jul 07 Python
Python 操作 MySQL数据库
Sep 18 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
python获取带有返回值的多线程
May 02 Python
深入学习python多线程与GIL
Aug 26 #Python
用python生成与调用cntk模型代码演示方法
Aug 26 #Python
python list转置和前后反转的例子
Aug 26 #Python
python3 map函数和filter函数详解
Aug 26 #Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 #Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 #Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 #Python
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
python编程线性回归代码示例
2017/12/07 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
Python安装whl文件过程图解
2020/02/18 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
Java基础面试题
2012/11/02 面试题
档案管理员岗位职责
2013/12/01 职场文书
幼儿园实习自我鉴定
2013/12/15 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
信息员培训方案
2014/06/12 职场文书
拓展训练激励口号
2014/06/17 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
单独二胎证明
2015/06/24 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书