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 相关文章推荐
在Django的视图(View)外使用Session的方法
Jul 23 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
Python 备份程序代码实现
Mar 06 Python
python3实现163邮箱SMTP发送邮件
May 22 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
django-allauth入门学习和使用详解
Jul 03 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
如何理解Python中的变量
Jun 01 Python
pytorch SENet实现案例
Jun 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
配置支持SSI
2006/11/25 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
IE 下的只读 innerHTML
2009/08/21 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
浅谈mint-ui 填坑之路
2017/11/06 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
python实现udp聊天窗口
2020/03/31 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
会计专业毕业生推荐信
2013/11/05 职场文书
面试必备的求职信
2014/05/25 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
Docker官方工具docker-registry案例演示
2022/04/13 Servers