在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/ayers)中实现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执行文件)

时间: 2024-08-25 19:47:11

在caffe中添加新的layer的相关文章

如何在caffe中添加新的Layer

如何在caffe中添加新的Layer 本文分为两部分,先写一个入门的教程,然后再给出自己添加maxout与NIN的layer的方法 (一) 其实在Github上已经有答案了(https://github.com/BVLC/caffe/issues/684) Here's roughly the process I follow. Add a class declaration for your layer to the appropriate one of common_layers.hpp, 

如何在caffe中添加新类型的layer

如何在caffe中添加新类型的layer 参考:https://github.com/BVLC/caffe/issues/684 Add a class declaration for your layer to the appropriate one of common_layers.hpp,data_layers.hpp, loss_layers.hpp, neuron_layers.hpp, or vision_layers.hpp. Include an inline implement

Caffe中增加新的layer以及Caffe中triplet loss layer的实现

关于Tripletloss的原理,目标函数和梯度推导在上一篇博客中已经讲过了,具体见:Tripletloss原理以及梯度推导,这篇博文主要是讲caffe下实现Tripletloss,编程菜鸟,如果有写的不优化的地方,欢迎指出. 尊重原创,转载请注明:http://blog.csdn.net/tangwei2014 1.如何在caffe中增加新的layer 新版的caffe中增加新的layer,变得轻松多了,概括说来,分四步: 1)在./src/caffe/proto/caffe.proto 中增

如何给caffe添加新的layer ?

如何给caffe添加新的layer ? 初学caffe难免会遇到这个问题,网上搜来一段看似经典的话, 但是问题来了,貌似新版的caffe并没有上面提到的vision_layer:

如何在github的wiki中添加新的图片

本文简单介绍在github的wiki中添加新的图片对方法 在github的wiki中,可以展现图片,可是,怎么添加图片,从网页上展示的信息来看,不是很清楚. 添加图片,基本上就是通过下面几步来完成: 1. clone wiki 2.创建图片目录 3.在图片目录中添加图片 4.在wiki中引用图片 具体操作步骤如下: 1. clone wiki git clone https://github.com/xx/xx.wiki.git 该url可以从clone this wiki locally 拿到

MFC中添加新的对话框

MFC工程中,除了系统自动生成的一些对话框之外,还需要根据自己的需求,添加新的对话框.这里总结下自己最近使用的方法. 首先,找到Resource View中自己新建的工程,然后右键,选择Add Class,然后弹出的对话框中对新增的类进行设置,在Base Class需要选择CDialog,然后输入新增类的名称之后,就新增了一个类.这个类不仅有对应的头文件还有.cpp文件,以及一个与这个类对应的UI界面. 然后,需要将新增的类对应的头文件包含到它对应的父类的头文件中,同时在protected域中声

如何在iOS开发中添加新的字体

iOS 开发默认字体是 Heiti SC ,即我们常用的「黑体-简」 用过一段时间后,就会发现字体过于单调了 ,那么怎么在iOS开发中添加新的字体呢 ,这里教你两种方法. 1.使用系统自带的字体 搜索fonts,不难发现,系统中是有不少字体的,而这些字体也是都是可以使用的. 这些字体只用时可以通过代码来设置,也可以直接来设置,方法很简单: 将text的属性设置为Attributed,再选择自己想要的系统字体就OK啦 2.使用自己从网上下载的字体 首先从网上下载自己喜欢的字体,将下载好的字体拖入当

向SQL Server 现有表中添加新列并添加描述.

注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先附上存储过程然后解释) 代码 /********调用方法********** 作用: 添加列并添加列描述信息 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' *********

向Java枚举类型中添加新方法

除了不能继承enum之外,可将其看做一个常规类.甚至可以有main方法. 注意:必须先定义enum实例,实例的最后有一个分号. 下面是一个例子:返回对实例自身的描述,而非默认的toString返回枚举实例的名字. public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String nam