【问题标题】:Conv2D vs Depthwise Conv2D calculationConv2D 与 Depthwise Conv2D 计算
【发布时间】:2019-10-24 09:08:00
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我现在更加困惑了。对于 dw conv2d,如果输入为 3x3x3,过滤器是否为 2x2x1?意思是有 1 个 2x2 滤波器应用于所有 3 个输入通道,创建 3 个输出通道?

标签: c++ deep-learning conv-neural-network


【解决方案1】:

例如,假设输入图像形状为(5,5,3)

卷积层

在 Conv2D 中,大小为 3*3*324 个过滤器与输入 5*5*3 进行卷积。

Conv2D

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

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)

SeparableConvolution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2019-04-09
    • 2018-01-12
    • 2014-09-29
    • 2021-02-16
    相关资源
    最近更新 更多