从文档中,我知道SeparableConv2D
是depthwise 和pointwise 操作的组合。然而,当我打电话
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
Run Code Online (Sandbox Code Playgroud)
这是否意味着SeparableConv2D
默认情况下不使用深度阶段的偏差?
谢谢。
正确,检查源代码(我这样做是为了tf.keras
,但我认为独立的情况是相同的keras
)表明,在 中SeparableConv2D
,可分离卷积仅使用过滤器,没有偏差,并且在末尾添加了单个偏差向量。另一方面,第二个版本对DepthwiseConv2D
和都有偏见Conv2D
。
鉴于卷积是一种线性运算,并且您在深度卷积和 1x1 卷积之间没有使用非线性,我认为在这种情况下没有必要有两个偏差,类似于您在后面的层中不使用偏差的方式例如,批量归一化。因此,额外的 10 个参数实际上不会改进模型(也不应该真正造成损害)。
归档时间: |
|
查看次数: |
2331 次 |
最近记录: |