caffe添加layer

1.caffe的安装

这里主要说anaconda下安装caffe:

首先将配套python环境打开:

source activate caffe_env

然后按照anaconda 下安装caffe

注意如果出现

cmake: /home/shree/anaconda2/lib/libcurl.so.4: no version information available
请将anaconda暂时文件夹改名,等make完caffe之后再改回来

2.caffe添加layer

2.1.这里我用的文件是

diff_cutoff_layer.hpp
diff_cutoff_layer.cpp
(来自:caffe中添加新层(差分层)

2.2.修改src\caffe\proto\caffe.proto文件

首先应该在message LayerParameter {}中添加新参数信息

    optional DiffCutoffParameter diff_cutoff_param = 147; // “diff_cutoff_layer.hpp”文件定义为”DiffCutoffLayer“

任意位置出定义层的参数


    message DiffCutoffParameter   
    {   
      optional float  diff_scale = 1 [default = 1];//默认梯度不缩放  
    }

2.3 最后重新编译caffe即可

参照上边

2.4测试

借用为caffe添加最简单的全通层AllPassLayer的测试方法:

$ ./build/tools/caffe.bin time -model deploy.prototxt

其中deploy.prototxt文件为:

name: "AllPassTest"  
layer {  
  name: "data"  
  type: "Input"  
  top: "data"  
  input_param { shape: { dim: 10 dim: 3 dim: 227 dim: 227 } }  
} 
layer {
  name: "diff_1"
  type: "DiffCutoff"   ##这里"DiffCutoff" 与“optional DiffCutoffParameter”中的"DiffCutoff"一样
  bottom: "data"
  top: "conv1"
  diff_cutoff_param {    ##这里diff_cutoff_param与diff_cutoff_param = 147一样
    diff_scale: 0.0001
 }
}

注意,这里的 type :”DiffCutoff” 后面写的内容,应该是你在 .hpp 中声明的新类 class name 去掉 Layer 后的名称。

3.caffe用自己的数据

https://www.jianshu.com/p/261e8701845f

4.初学caffe怎样跑mnist

http://suanfazu.com/t/caffe/281

5.跑包时发现”weight_filler“的参数解释

caffe中权值初始化方法这里写链接内容

猜你喜欢

转载自blog.csdn.net/weixin_37251044/article/details/79796709