卷积二维与深度卷积二维计算

Conv2D vs Depthwise Conv2D calculation

本文关键字:卷积 二维 计算 深度      更新时间:2023-10-16

我试图了解 2D 卷积和 2D 深度卷积神经网络计算的异同。(我理解这些概念(。

例如,假设有一个 3x3 的输入图像,具有 3 个通道 (RGB(,填充为 1,步幅为 1。筛选器为 2x2。

输出是什么?(可以忽略激活和偏差(

我知道常规的 conv2D 将有 1 个 3x3 输出,而 dw conv2D 将有 3 个。除此之外,我有点困惑。谢谢

例如,让我们将输入图像形状视为(5,5,3)

卷积层

在 Conv2D 中,大小为 3*3*324 个滤波器与输入5*5*3错综复杂。

卷积2D

任何卷积层中每个滤波器的深度将与该层的输入形状的深度相同:

input_shape = (1, 5, 5, 3)
x = tf.random.normal(input_shape)
y = tf.keras.layers.Conv2D(24, 3, activation='relu', input_shape=(5,5,3))(x)
print(y.shape) #(1,3,3,24)

深度卷积层

在深度卷积中,我们不指定过滤器的数量;我们只使用 1 个过滤器:

z = tf.keras.layers.DepthwiseConv2D(3,activation='relu', input_shape=input_shape[1:])(x)
print(z,shape) #(1,3,3,3)

可分离卷积