目前我正在学习计算机视觉,并学习深度卷积。(不是深度分离卷积!(
所以,我想知道的是"depth_ multiplier">参数有效。
首先
当不使用";depth_ multiplier";并且仅使用DepthwiseConv2D(kernel_size=(3,3((,内核的形状为(3x3x3(输出形状变为(32x32x3(
问题是
但是当我使用";depth_ multiplier";,
深度Conv2D(kernel_size=(3,3(,深度乘数=4(
核的形状变成(3x3x3(x4吗->这意味着(3x3x3(个内核中的4个
并且输出形状变为(32x32x3(x4?或者输出形状变为(32x32x12(?
这对我来说很重要,因为
在这一层之后,我将使用普通卷积。其具有128个核并且kernel_ size=(3,3(。我想知道内核的形状是什么。它会是(3x3x3(x128吗?还是其他形状?
培训准则有效,但想知道它实际上是如何工作的。
我也想知道(depth_multer=#(是如何真正工作的
谢谢。
是。
带depth_multiplier=1
:
x = tf.keras.Input(shape=(32, 32, 3))
y = tf.keras.layers.DepthwiseConv2D(kernel_size = (3,3), padding='SAME')(x)
keras.Model(inputs=x, outputs=y).layers[-1].weights[0].shape
#outputs TensorShape([3, 3, 3, 1])
带depth_multiplier=4
:
y = tf.keras.layers.DepthwiseConv2D(kernel_size = (3,3),depth_multiplier=4, padding='SAME')(x)
keras.Model(inputs=x, outputs=y).layers[-1].weights[0].shape
#outputs: TensorShape([3, 3, 3, 4])