DepthwiseConv2D和SeparableConv2D之间的区别

8

从文档中我了解到SeparableConv2D是深度可分离卷积的一种组合形式。然而,当我调用它时

SeparableConv2D(100, 5, input_shape=(416,416,10) 

# total parameters is 1350

model.add(DepthwiseConv2D(5, input_shape=(416,416,10)))
model.add(Conv2D(100, 1))

# total parameters is 1360

这是否意味着SeparableConv2D在深度可分阶段默认情况下不使用偏置?

谢谢。

1个回答

4

正确的,检查源代码(我为tf.keras这样做了,但我认为独立的keras也是一样的),发现在SeparableConv2D中,可分离卷积只使用过滤器,没有偏差,并且单个偏差向量在最后添加。另一方面,第二个版本为DepthwiseConv2DConv2D都增加了偏差。

考虑到卷积是一个线性操作,并且您在深度和1x1卷积之间不使用非线性,我认为在这种情况下拥有两个偏差是不必要的,就像您不在紧随批归一化的层中使用偏差一样,例如。因此,额外的10个参数实际上不会改善模型(也不应该对模型造成太大的影响)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接