先挖坑:如何使用caffe在网络里用自定义的初始化参数。

。。。。想起来在埋吧。2018.03.01.。。。。。

好,这个三两天开始填坑,稍等。2018.6.01

好的,再等两天,上面那句话不算。呵呵哒。2018.6.27

好的,今天更。哎,看着自己这拖延症,有时候睡觉的时候想抽自己两嘴巴子。在caffe里,我们在prototxt里定义层结构的时候,涉及到参数的初始化问题总是随口一提什么高斯等等。那么,问题来了,参数的初始化对结果有影响么?不饶圈子,回答,有。但是呢,如果现有的各种初始化方法对性能的影响差异不大,几乎可以忽略,那么问题来了,都差不多你搞毛自定义的初始化参数。哼哼,不告诉你。

言归正传,写步骤:
第一步,在/include/caffe/filler.hpp里,定义子类,模仿其他的初始化类别定义方式写。大概是这个样子,比如我们要定义的参数化的名字是Woshuai,那么类似下面:

template Dtype>
class WoshuaiFiller:public Filler<Dtype>{

下面自己写。

}

第二步:在/include/caffe/filler.hpp里的最下方声明参数初始化类型:
模仿其他参数化的形式,代码:

类似于:
......
}else if (type == "woshuai"){
    return new WoshuaiFiller<Dtype>(param); 
}

重新编译caffe,然后,哼哼哼,大功告成。

你可能感兴趣的:(从caffe到放弃)