我使用caffe进行深度学习。要为caffe创建一个新层,我需要
(1)在proto/caffe.proto中添加层以更新下一个可用的ID
(2)通过在layer_factory.cpp中添加层,使其可以被创建
我的问题是caffe.proto中新ID的目的是什么,以及layer_factory.cpp中createable的功能是什么。
有些层在layer_factory.cpp中没有被标记为可创建。那些包含和不包含在layer_factory.cpp中的层之间有什么区别。
回答:
如果你想向caffe添加一个新层,请按照wiki/Development中的说明进行操作。
你会发现你不需要更改layer_factory.cpp
,而是需要在你的cpp文件中添加两个宏INSTANTIATE_CLASS
和REGISTER_LAYER_CLASS
。
关于caffe.proto
:只有当你希望你的层有一个特定的my_layer_param
消息时,你才需要进行更改。如果你的层重用现有层的参数,你完全不需要更改caffe.proto
。