在caffe中添加Normalize层
我的电脑中编译的是caffe官方的源码,但是最近在跑SSD的时候,发现官方的源码中其实是没有Normalize层,所以需要自己添加到Caffe中~
步骤
1.修改caffe.proto
caffe.proto一般是在:caffe_install_root/src/caffe/proto中,其中caffe_install_root就是caffe安装的根目录。打开caffe.proto文件。需要修改的有两处:
(1) 找到message LayerParameter,添加:
optional NormalizeParameter norm_param = 206;
(2)在最后加上:
message NormalizeParameter {
optional bool across_spatial = 1 [default = true];
// Initial value of scale. Default is 1.0 for all
optional FillerParameter scale_filler = 2;
// Whether or not scale parameters are shared across channels.
optional bool channel_shared = 3 [default = true];
// Epsilon for not dividing by zero while normalizing variance
optional float eps = 4 [default = 1e-10];
}
2.将normalize的头文件和源文件复制
首先,将normalize的头文件:normalize_layer.hpp(caffe-ssd)复制到caffe/include/caffe/layers中,这里caffe就是没有normalize层的caffe安装路径。
然后,将normalize_layer.cu和normalize_layer.cpp(这两个都是caffe-ssd)复制到caffe/src/caffe/layers中。
3.重新编译caffe
cd caffe
make clean
make all -j24
make run -j24
make runtest -j24
其中,24为电脑的内核,根据自己电脑配置选择。