caffe之均值文件

sudo python convert_mean.py mean.binaryproto mean.npy

一.二进制的均值计算

caffe中使用的均值数据格式是binaryproto, caffe为我们提供了一个计算均值的文件compute_image_mean.cpp, 在caffe目录下的build/tool文件中

sudo build/tools/compute_image_mean examples/mnist/mnist_train_lmdb examples/mnist/mean.binaryproto
第一个参数:examples/mnist/mnist_train_lmdb, 表示需要计算均值的数据,格式为lmdb的训练数据

第二个参数:examples/mnist/mean.binaryproto, 计算出来的结果保存文件。

二. python格式的均值计算

由python脚本实现

  1 #!/usr/bin/env python                                                       
  2 import numpy as np
  3 import sys,caffe
  4 
  5 if len(sys.argv)!=3:
  6     print "Usage: python convert_mean.py mean.binaryproto mean.npy"
  7     sys.exit()
  8 
  9 blob = caffe.proto.caffe_pb2.BlobProto()
 10 bin_mean = open( sys.argv[1] , 'rb' ).read()
 11 blob.ParseFromString(bin_mean)
 12 arr = np.array( caffe.io.blobproto_to_array(blob) )
 13 npy_mean = arr[0]
 14 np.save( sys.argv[2] , npy_mean )
将这个脚本保存为convert_mean.py,调用

python convert_mean.py mean.binaryproto mean.npy
convert_mean.py  上述脚本文件

mean.binaryproto 上述的二进制文件

mean.npy 为保存的python格式的均值文件

自己使用过的一个脚本

  1 #!usr/bin/env python
  2 import PIL
  3 import image
  4 import sys
  5 import time
  6 import os
  7 import numpy as np
  8 from matplotlib import pyplot as plt
  9 
 10 start = time.time()                                                         
 11 
 12 # Make sure that caffe is on the python path
 13 caffe_root = '/home/caffe/'  
 14 sys.path.insert(0, caffe_root + 'python')
 15 
 16 import caffe
 17 # "source" is the binary file converted by the command shell 
 18 # "des" is the binary file with python format converted from "source"
 19 source = caffe_root + 'examples/mnist/mean.binaryproto'
 20 des = caffe_root + 'examples/mnist/mean_1.npy'
 21 
 22 # BlobProto object
 23 blob = caffe.proto.caffe_pb2.BlobProto()
 24 data = open( source , 'rb' ).read()
 25 # parsing source data
 26 blob.ParseFromString(data)
 27 # convert to npy format
 28 arr = np.array( caffe.io.blobproto_to_array(blob) )
 29 out = arr[0]
 30 # save the converted result
 31 np.save( des , out )
~                         


注:


sudo pip install image



权限不够,获取root权限


在进入python编辑模式时import caffe并没有报错,运行脚本文件时却提示我没有 module caffe

sudo python convert_mean.py mean.binaryproto mean.npy
将sudo 去掉后可以运行

本章主要参考http://www.cnblogs.com/denny402/p/5102328.html

Caffe是一个深度学习框架,其配置文件包含了网络结构、数据输入格式、训练参数等内容。下面是一个简单的配置文件示例: ``` name: "MyNetwork" # 网络名称 layer { name: "input" # 输入层名称 type: "Data" # 层类型 top: "data" # 输出名称 include { phase: TRAIN # 训练阶段 } transform_param { crop_size: 227 # 裁剪大小 mean_value: 104 # 均值 mean_value: 117 mean_value: 123 } data_param { source: "train_lmdb" # 数据源 batch_size: 64 # 批量大小 backend: LMDB # 数据库类型 } } layer { name: "conv1" # 卷积层名称 type: "Convolution" # 层类型 bottom: "data" # 输入名称 top: "conv1" # 输出名称 convolution_param { num_output: 96 # 输出通道数 kernel_size: 11 # 卷积核大小 stride: 4 # 步长 weight_filler { type: "xavier" # 权重初始化方法 } bias_filler { type: "constant" # 偏置初始化方法 value: 0 # 偏置值 } } } ``` 配置文件中,每个层都由一个`layer`标签表示,其中包含了该层的名称、类型、输入输出名称、参数配置等信息。例如,第一个层为`Data`类型,包含了数据的输入格式、数据源、批量大小等信息。第二个层为`Convolution`类型,包含了卷积核大小、步长、输出通道数、权重初始化方法、偏置初始化方法等信息。 除了网络结构和数据输入格式,配置文件还包含了训练参数,例如学习率、权重衰减、优化器类型等。这些参数可以在`solver`标签中进行配置。例如: ``` net: "my_network.prototxt" # 网络配置文件路径 test_iter: 100 # 测试迭代次数 test_interval: 500 # 测试间隔 base_lr: 0.01 # 初始学习率 lr_policy: "step" # 学习率衰减策略 gamma: 0.1 # 学习率衰减因子 stepsize: 100000 # 学习率衰减间隔 momentum: 0.9 # 动量 weight_decay: 0.0005 # 权重衰减 solver_mode: GPU # 训练模式 ``` 以上是Caffe配置文件的简单介绍,实际使用中还需要根据具体情况进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值