图层模板

import caffe

class My_Custom_Layer(caffe.Layer):
    def setup(self, bottom, top):
        pass
        
    def forward(self, bottom, top):
        pass
        
    def reshape(self, bottom, top):
        pass

    def backward(self, bottom, top):
        pass

要记住的重要事项:

  • 你的自定义图层必须从 caffe.Layer 继承 (所以不要忘记导入 caffe );
  • 你必须定义以下四种方法: setupforwardreshapebackward ;
  • 所有方法都有 topbottom 参数,这些参数是存储输入和传递给图层的输出的 blob。你可以使用 top [i] .databottom [i] .data 访问它,其中 i 是 blob 的索引,以防你有多个上限或下限 blob。

- 设置方法

在 Caffe 实例化所有层时,在执行的生命周期中调用 Setup 方法一次。你可以在此处读取参数,实例化固定大小的缓冲区。

- 重塑方法

使用 reshape 方法进行初始化/设置,这取决于底部 blob(图层输入)大小。在实例化网络时调用一次。

- 前进方法

为每个输入批处理调用 Forward 方法,这是你的大多数逻辑所在的位置。

- 后退方法

在向后传递网络期间调用 Backward 方法。例如,在类似卷积的图层中,这将是你计算渐变的位置。这是可选的(图层可以是仅向前的)。