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打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
python自动发微信监控报警
Sep 06 Python
基于python判断目录或者文件代码实例
Nov 29 Python
Python函数参数类型及排序原理总结
Dec 19 Python
django model object序列化实例
Mar 13 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python如何调用java类
Jul 05 Python
python中K-means算法基础知识点
Jan 25 Python
python推导式的使用方法实例
Feb 28 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
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
phalcon框架使用指南
2016/02/23 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
python tornado微信开发入门代码
2018/08/24 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
师德建设实施方案
2014/03/21 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
董事长助理工作职责
2014/06/08 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
作风年建设汇报材料
2014/08/14 职场文书
热情服务标语
2014/10/07 职场文书
学校通报表扬范文
2015/05/04 职场文书
七一晚会主持词
2015/06/29 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS