在实际写代码的时候,x一般是四维的,
x[编号n,通道c,高h,宽w]
编号是第几个batch的意思,通道一般是RGB其中一个,
下图就是只有一个卷积核的时候,用wx+b得到三张特征图,
跟上一篇讲的一样,这就是其前向传播
然后,其还要进行反向传播,如下图
一次卷积:
out=xw+b
我们需要反向传播更新w
扫描二维码关注公众号,回复:
5681559 查看本文章
我们算这个dw等于 上一层传下来的梯度dout (可以是softmax或者fc等等等等)乘以自身的梯度x
// out=xw+b对w求偏导 右边就等于x
故 dw=dout*x //dw大小与w相同
前向传播就是A*B=C
反向传播就是A=B*C,A就是我们要求的dw
C就是dout[0,0,0]
B就是卷积层中的那个圈
C*B就等于A中的左上角的值,
类似前向传播相乘后,可以得到整个A的值,也就是R通道的dw
其中紫的的:3,:3是省略了0
就是0:3,0:3的意思,就是代表B的意思
以上就是反向传播中的卷积操作
反向传播中的pooling如下图所示
上图左边分别是 mean 和max的前向和反向的例子