macOS Sierra (10.12.4)下Caffe通过Python接口加载binaryproto格式的均值文件

2017-04-07 10:28:12来源:http://www.mobibrw.com/2017/6805作者:默默的点滴人点击




macOS
Sierra

(
10.12.4

)下
Caffe

通过
Python

接口加载均值文件的时候,都是加载的
.npy

格式的文件,这个格式是
Python

存储的格式,跟我们经常下载到的
.binaryproto

格式的均值文件是不同的,这样就导致了加载问题。


.binaryproto

Google

Protocol
Buffer
序列化后的数据,而
.npy
格式是
Python



numpy


模块序列化后的数据。



之所以会出现两种不同的存储格式,目前猜测是由于目前
Python
3
不能很好的支持
Protocol
Buffer
导致的。



Python
下是不能直接加载
.binaryproto
格式的数据的,必须进行一次转换才行,示例代码如下:


#coding=utf-8
#加载必要的库
import numpyas np

import sys,os
 
#设置当前目录
caffe_root = '/Users/Source/caffe/distribute/'
sys.path.append(caffe_root + 'python')
 
import caffe
os.chdir(caffe_root)
 
memnet_root = '/Users/Source/caffe/'
model_def =memnet_root + 'models/memnet/deploy.prototxt'
pretrained_model=memnet_root + 'models/memnet/memnet.caffemodel'
means_file=memnet_root + 'models/memnet/mean.binaryproto'
 
caffe.set_mode_cpu()
blobProto=caffe.io.caffe_pb2.BlobProto()
binProtoFile=open(means_file,'rb')
blobProto.ParseFromString(binProtoFile.read())
means = caffe.io.blobproto_to_array(blobProto)[0]
binProtoFile.close()
 
# Make detector.
detector = caffe.Detector(model_def, pretrained_model, mean=means)
参考链接
Convert binaryproto to npy
How to convert binaryproto to npy (like ilsvrc_2012_mean.npy)?

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台