Caffe中均值文件的问题

关于均值文件

(1) 在Caffe中作classification时经常需要使用均值文件,但是caffe自己提供的脚本只能将图像数据转换为 binaryproto类似的形式 (2) 我们在使用python接口时需要将npy形式的均值文件导入进来,而非binaryproto这样的均值文件

均值文件形式之间的转换

google类以下发现可以使用如下的代码进行转换: 代码是我自己实际使用的,有注释

import PIL
import Image
import sys
import time
import os
import numpy as np
from matplotlib import pyplot as plt 

start = time.time()

# Make sure that caffe is on the python path
caffe_root = '/home/gavinzhou/caffe-master/'  
sys.path.insert(0, caffe_root + 'python')

import caffe
# "source" is the binary file converted by the command shell 
# "des" is the binary file with python format converted from "source"
source = caffe_root + 'gavinzhou_LAB/alexnet/GF18_mean.binaryproto'
des = caffe_root + 'gavinzhou_LAB/alexnet/GF18_mean.npy'

# BlobProto object
blob = caffe.proto.caffe_pb2.BlobProto()
data = open( source , 'rb' ).read()
# parsing source data
blob.ParseFromString(data)
# convert to npy format
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
# save the converted result
np.save( des , out )

实际测试时,验证数据集使用binaryproto形式的均值文件和测试数据集使用npy形式的均值文件时,正确率基本一样(差异很小但是还是验证集合稍高)

写在后面

从零开始玩deep learning确实很不容易,不过坚持下来就有收获,类似于这种问题虽然很小可是对于入门的learner(比如我)来说,还是要费一番功夫的,特此写出供遇到和我一样问题的人参考,大家共同努力吧!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习实践二三事

caffe introduction & classification

caffe 介绍 caffe是Berkely的深度学习框架,在流行的deep learning framework里属于使用人数很多的,github上的统计显示...

1985
来自专栏Fred Liang

Machine Learning Toolbox

尝试自己造一个轮子,封装出一个常用的机器学习相关工具的库 目前在写可视化,会用到 bokeh 和 polty

342
来自专栏ATYUN订阅号

防止在训练模型时信息丢失 用于TensorFlow、Keras和PyTorch的检查点教程

如果你玩过电子游戏,你就会明白为什么检查点(chekpoint)是有用的了。举个例子,有时候你会在一个大Boss的城堡前把你的游戏的当前进度保存起来——以防进入...

4365
来自专栏算法+

基于傅里叶变换的音频重采样算法 (附完整c代码)

如果特定情况下需要,我也可以上matlab,python,delphi,c#,c++等等。

1923
来自专栏机器之心

教程 | 在Cloud ML Engine的TPU上从头训练ResNet

张量处理单元(TPU)是能够大大加快深度学习模型训练速度的硬件加速器。在斯坦福大学进行的独立测试中,在 TPU 上训练的 ResNet-50 模型能够在 Ima...

862
来自专栏编程

python验证码识别实战

陆陆续续的学习了验证码的灰度、二值化、分割等方法,还了解了机器学习中最基本的3个分类方式——KNN、决策树、朴素贝叶斯。基于这些,今天结合这些工具来写一个简单的...

2636
来自专栏BestSDK

Pytorch 0.3.0 发布:新增张量函数,支持模型移植

根据官方文档的介绍,此次增加了多个函数和功能,多方面的性能均实现提升。 重大变更 0.3 版本中删掉了 Variable.reinforce() 等随机函数,因...

3478
来自专栏新智元

玩转谷歌物体识别API,用TensorFlow和OpenCV打造实时识别应用

【新智元导读】谷歌 TensorFlow 的 Object Detection API 刚刚开源, Pivotal Labs 的 Dat Tran 就做出了对象...

51617
来自专栏AI研习社

从 MAX 网站中获取模型,一秒开始你的深度学习应用

您是否想过对图像进行分类、识别图像中的人脸或位置、处理自然语言或文本,或者根据应用程序中的时间序列数据创建推荐? 通过深度学习(使用深度神经网络的机器学习),你...

542
来自专栏深度学习与计算机视觉

TensorFlow-Slim图像分类库

TensorFlow-Slim图像分类库 TF-slim是用于定义,训练和评估复杂模型的TensorFlow(tensorflow.contrib.slim)的...

8526

扫码关注云+社区