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 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

算法模板——左偏树(可并堆)

实现的功能——输入1 x,将x加入小根堆中;输入2,输出最小值并去在堆中除掉 实现原理——左偏树,这里面维护的是一个小根堆,个人认为其还是没有发挥出左偏树的真正...

3099
来自专栏CSDN技术头条

使用hadoop进行大规模数据的全局排序

1. Hellow hadoop~~! Hadoop(某人儿子的一只虚拟大象的名字)是一个复杂到极致,又简单到极致的东西。 说它复杂,是因为一个hadoop...

2325
来自专栏祝威廉

TensorFlowOnSpark 源码解析

这两天琢磨了下spark-deep-learning和spark-sklearn两个项目,但是感觉都不尽人如意。在training时,都需要把数据broadca...

762
来自专栏每日一篇技术文章

OpenGL ES _ 高级03_调试工具

441
来自专栏算法与数据结构

操作系统--页面置换算法(缺页数计算)

这篇博客主要讲三种置换算法,FIFO(先进先出),OPT(最佳置换算法),LRU(最近最久未使用和最少使用置换算法)

1083
来自专栏Python中文社区

Keras 的 Web 填坑记

博客主页:https://www.zhihu.com/people/tu-dou-dou-27-10

1133
来自专栏生信技能树

【直播】我的基因组 30:使用软件把变异分类—添加tag

前面我们讲解了VCF文件的基础信息,其中第8列的信息可以无限丰富,但是通常我们的call variation的软件默认只给出有限的信息,有的甚至都不会告诉你该变...

34011
来自专栏流媒体人生

视频的容器与格式

   一般而言,视频文件的扩展名就是视频的容器名。比如“avi文件”或者“mp4文件,avi和mp4只是容器格式。好比zip文件,里面可以包含各种文件,视频容器...

683
来自专栏算法+

pytorch 移动端框架 thnets 附c示例代码

前年年前做一个手机移动端图像识别项目的时候, 先后尝试了mxnet,thnets,caffe,tensorflow. 当时的情况是,mxnet内存管理奇差,内存...

4027
来自专栏草根专栏

使用xUnit为.net core程序进行单元测试(下1)

第1部分: https://cloud.tencent.com/developer/article/1019835

3546

扫码关注云+社区