图层模板
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 );
- 你必须定义以下四种方法: setup , forward , reshape 和 backward ;
- 所有方法都有 top 和 bottom 参数,这些参数是存储输入和传递给图层的输出的 blob。你可以使用 top [i] .data 或 bottom [i] .data 访问它,其中 i 是 blob 的索引,以防你有多个上限或下限 blob。
- 设置方法
在 Caffe 实例化所有层时,在执行的生命周期中调用 Setup 方法一次。你可以在此处读取参数,实例化固定大小的缓冲区。
- 重塑方法
使用 reshape 方法进行初始化/设置,这取决于底部 blob(图层输入)大小。在实例化网络时调用一次。
- 前进方法
为每个输入批处理调用 Forward 方法,这是你的大多数逻辑所在的位置。
- 后退方法
在向后传递网络期间调用 Backward 方法。例如,在类似卷积的图层中,这将是你计算渐变的位置。这是可选的(图层可以是仅向前的)。