SeparableConv2D是否包括深度操作后的批量标准化和重新校准?

2024-05-16 18:05:54 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题可能类似于thisthis,但在这个问题中,我想澄清DepthwiseConv2D和SeparableConv2D之间的区别,即激活层以及depthwise和pointwise层之间的批量归一化层

{a3}提到一个深度可分离的卷积层,如下所示: enter image description here

但是tf.keras版本是否在SeparableConv2D层中实现了相同的体系结构?如果不是,那么图层是什么样子的


Tags: 版本图层体系结构tf批量this卷积a3
1条回答
网友
1楼 · 发布于 2024-05-16 18:05:54

老实说,唯一知道的方法是通过

from tensorflow.keras.applications import MobileNet
model = MobileNet()
model.summary()

实际上,当您检查结果时,唯一存在的层是DepthwiseConv2D

事实上,检查model.summary()会得到以下结果:

(请注意,这是一个深度+点方向的块)

conv_pad_6 (ZeroPadding2D) (None, 29, 29, 256) 0
_________________________________________________________________ conv_dw_6 (DepthwiseConv2D) (None, 14, 14, 256) 2304
_________________________________________________________________ conv_dw_6_bn (BatchNormaliza (None, 14, 14, 256) 1024
_________________________________________________________________ conv_dw_6_relu (ReLU) (None, 14, 14, 256) 0
_________________________________________________________________ conv_pw_6 (Conv2D) (None, 14, 14, 512) 131072
_________________________________________________________________ conv_pw_6_bn (BatchNormaliza (None, 14, 14, 512) 2048
_________________________________________________________________ conv_pw_6_relu (ReLU) (None, 14, 14, 512) 0


前三层执行深度可分离卷积,而点方向卷积由后三层执行。从层的名称可以看出哪些层是第一个操作(dw)和第二个操作(pw)的一部分

通过检查这些层,我们还可以看到操作的顺序,即batch normalization操作发生在relu activation之前。这对深度卷积和点方向卷积都有效,如上面的描述所示

然而,您的观察结果确实不错,因为架构中不存在1x1卷积,至少根据model.summary()

根据Keras/TF文件:

"""Depthwise separable 2D convolution.

Depthwise Separable convolutions consist of performing just the first step in a depthwise spatial convolution (which acts on each input channel separately).

相关问题 更多 >