Class_6 Caffe Layers之sigmoid_layer(sigmoid激活层)
1. 简述
sigmoid_layer是激活层,一般地说,卷积之后一定带一个激活层。caffe中sigmoid激活层相对还是简单的。继承了一个neuron_layer,然后实现了前向和后向的计算。
2. neuron_layer
neuron_layer实际上不是CNN或RNN中的层,而只是一个辅助层。neuron_layer的作用也很简单,就是给那些只有一个输入一个输出,且输入和输出是相同shape的层做一个统一的工具。
(1)Reshape
Reshape比较简单,就是设置输出shape等同于输入shape。
(2)ExactNumBottomBlobs和ExactNumTopBlobs
这两个接口,只是告诉调用者,能够处理的blob数。
3. SigmoidLayer
SigmoidLayer是具体的激活层。主要也就是实现了Forward_xxx和Backward_xxx.
(1)sigmoid
sigmoid主要就是对输入的一个数据,做一个激活操作。就是实现了一个公式的带入参数,计算输出。
公式是
(2)Forward_cpu
前向计算,获得输入数据bottom_data,输出数据top_data, 以及输入数据的大小count。
一个for循环依次对每一个输入数据执行激活。
(3)Backward_cpu
Backward_cpu是sigmoid的反向传播,具体也是实现了一个公式,如下:
就到这了,激活层本来就没有什么东西。