Caffe均值文件mean.binaryproto转mean.npy的方法


Posted in Python onJuly 09, 2018

mean.binaryproto转mean.npy

使用Caffe的C++接口进行操作时,需要的图像均值文件是pb格式,例如常见的均值文件名为mean.binaryproto;但在使用python接口进行操作时,需要的图像均值文件是numpy格式,例如mean.npy。所以在跨语言进行操作时,需要将mean.binaryproto转换成mean.npy,转换代码如下:

import caffe
import numpy as np

MEAN_PROTO_PATH = 'mean.binaryproto'        # 待转换的pb格式图像均值文件路径
MEAN_NPY_PATH = 'mean.npy'             # 转换后的numpy格式图像均值文件路径

blob = caffe.proto.caffe_pb2.BlobProto()      # 创建protobuf blob
data = open(MEAN_PROTO_PATH, 'rb' ).read()     # 读入mean.binaryproto文件内容
blob.ParseFromString(data)             # 解析文件内容到blob

array = np.array(caffe.io.blobproto_to_array(blob))# 将blob中的均值转换成numpy格式,array的shape (mean_number,channel, hight, width)
mean_npy = array[0]                # 一个array中可以有多组均值存在,故需要通过下标选择其中一组均值
np.save(MEAN_NPY_PATH ,mean_npy)

已知图像均值,构造mean.npy

如果已知图像中每个通道的均值,例如3通道图像每个通道的均值分别为104,117,123,我们也可以通过其构造mean.npy。代码如下:

import numpy as np

MEAN_NPY_PATH = 'mean.npy'

mean = np.ones([3,256, 256], dtype=np.float)
mean[0,:,:] = 104
mean[1,:,:] = 117
mean[2,:,:] = 123

np.save(MEAN_NPY, mean)

载入mean.npy

上面我们用两种方式构造了均值文件mean.npy,在使用时载入mean.npy的代码如下:

import numpy as np

mean_npy = np.load(MEAN_NPY_PATH)
mean = mean_npy.mean(1).mean(1)

以上这篇Caffe均值文件mean.binaryproto转mean.npy的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于python的Tkinter实现一个简易计算器
Dec 31 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
Python自定义一个异常类的方法
Jun 27 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
python如何实现代码检查
Jun 28 Python
Python 旋转打印各种矩形的方法
Jul 09 Python
django日志默认打印request请求信息的方法示例
May 17 Python
python如何构建mock接口服务
Jan 28 Python
详解Python类和对象内容
Jun 22 Python
Python os和os.path模块详情
Apr 02 Python
使用Python更换外网IP的方法
Jul 09 #Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 #Python
Python迭代器与生成器用法实例分析
Jul 09 #Python
numpy的文件存储.npy .npz 文件详解
Jul 09 #Python
Python实现聊天机器人的示例代码
Jul 09 #Python
Atom的python插件和常用插件说明
Jul 08 #Python
Python中pip更新和三方插件安装说明
Jul 08 #Python
You might like
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
快速入门Vue
2016/12/19 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
js中的闭包实例展示
2018/11/01 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python tkinter基本属性详解
2019/09/16 Python
Python3常见函数range()用法详解
2019/12/30 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
为什么说python更适合树莓派编程
2020/07/20 Python
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
个人现实表现材料
2014/02/04 职场文书
导航工程专业自荐信
2014/09/02 职场文书
医生个人年终总结
2015/02/28 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
青年教师听课心得体会
2016/01/15 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
教你一步步实现一个简易promise
2021/11/02 Javascript
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle