2024-05-16 18:05:54 发布
网友
这个问题可能类似于this和this,但在这个问题中,我想澄清DepthwiseConv2D和SeparableConv2D之间的区别,即激活层以及depthwise和pointwise层之间的批量归一化层
{a3}提到一个深度可分离的卷积层,如下所示:
但是tf.keras版本是否在SeparableConv2D层中实现了相同的体系结构?如果不是,那么图层是什么样子的
tf.keras
SeparableConv2D
老实说,唯一知道的方法是通过
from tensorflow.keras.applications import MobileNet model = MobileNet() model.summary()
实际上,当您检查结果时,唯一存在的层是DepthwiseConv2D
DepthwiseConv2D
事实上,检查model.summary()会得到以下结果:
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)的一部分
dw
pw
通过检查这些层,我们还可以看到操作的顺序,即batch normalization操作发生在relu activation之前。这对深度卷积和点方向卷积都有效,如上面的描述所示
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).
"""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).
老实说,唯一知道的方法是通过
实际上,当您检查结果时,唯一存在的层是
DepthwiseConv2D
事实上,检查
model.summary()
会得到以下结果:(请注意,这是一个深度+点方向的块)
前三层执行深度可分离卷积,而点方向卷积由后三层执行。从层的名称可以看出哪些层是第一个操作(
dw
)和第二个操作(pw
)的一部分通过检查这些层,我们还可以看到操作的顺序,即
batch normalization
操作发生在relu activation
之前。这对深度卷积和点方向卷积都有效,如上面的描述所示然而,您的观察结果确实不错,因为架构中不存在1x1卷积,至少根据
model.summary()
根据Keras/TF文件:
相关问题 更多 >
编程相关推荐