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爬虫代理IP池实现方法
Jan 05 Python
python编写分类决策树的代码
Dec 21 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Python Numpy计算各类距离的方法
Jul 05 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
使用TFRecord存取多个数据案例
Feb 17 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
教你怎么用python selenium实现自动化测试
May 27 Python
学会Python数据可视化必须尝试这7个库
Jun 16 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 24 Python
Python中字符串对象语法分享
Feb 24 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
php验证码的制作思路和实现方法
2015/11/12 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
Python读写ini文件的方法
2015/05/28 Python
Python实现的字典值比较功能示例
2018/01/08 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
2014年党务公开方案
2014/05/08 职场文书
《花钟》教学反思
2016/02/17 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
ant design vue的form表单取值方法
2022/06/01 Vue.js
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android