zoukankan      html  css  js  c++  java
  • 在caffe中添加新的layer

    比如现在要添加一个vision layer,名字叫Ly_Layer:(一般命名第一个字母大写,其余小写。)

    1、属于哪个类型的layer(共五种:common_layer, data_layer, loss_layer, neuron_layer, vision_layer ),就打开哪个 hpp文件(caffe-master/include/caffe/),这里就打开vision_layers.hpp,然后自己添加该layer的定义,或者直接复制Convolution_Layer的相关代码来修改类名和构造函数名都改为Ly_Layer,如果不用GPU,将*_gpu的声明都去掉。

    2、实现自己的layer,编写Ly_Layer.cpp,加入到src/caffe/layers,主要实现Setup、Forward_cpu、Backward_cpu。

    3、如果需要GPU实现,那么在Ly_Layer.cu(同样在/src/caffe/layers)中实现Forward_gpu和Backward_gpu。

    4、修改src/caffe/proto/caffe.proto,好到LayerType,添加Ly,并更新ID,如果Layer有参数,添加LyParameter类。

    5、在src/caffe/layer_factory.cpp中添加响应代码(一堆的if...else...)。

    6、在src/caffe/test中写一个test_Ly_layer.cpp,用include/caffe/test/test_gradient_check_util.hpp来检查前向后向传播是否正确。

    (.hpp头文件;.cpp执行文件)

  • 相关阅读:
    053(二十五)
    053(二十四)
    053(二十三)
    053(二十二)
    053(二十一)
    053(二十)
    053(十九)
    053(十八)
    053(十七)
    单例设计模式
  • 原文地址:https://www.cnblogs.com/ly123456/p/5517098.html
Copyright © 2011-2022 走看看