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 subprocess模块学习总结
Mar 13 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
python去掉空白行的多种实现代码
Mar 19 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
Python帮你识破双11的套路
Nov 11 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
python如何实现单链表的反转
Feb 10 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
python3中sys.argv的实例用法
Apr 24 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python定时任务APScheduler安装及使用解析
Aug 07 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
简单的js表单验证函数
2013/10/28 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
python属于跨平台语言码
2020/06/09 Python
python request 模块详细介绍
2020/11/10 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
美国Max仓库:Max Warehouse
2020/05/31 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
商务邀请函范文
2014/01/14 职场文书
创业计划书撰写原则
2014/01/25 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
工作证明格式范文
2015/06/15 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python