【问题标题】:I was reading a book on Deep learning and I am not able to understand this part about Conv2D我正在读一本关于深度学习的书,但我无法理解这部分关于 Conv2D
【发布时间】:2020-10-10 11:10:38
【问题描述】:
Layer (type) Output Shape Param #
================================================================
conv2d_4 (Conv2D) (None, 26, 26, 32) 320
________________________________________________________________
conv2d_5 (Conv2D) (None, 24, 24, 64) 18496
________________________________________________________________
conv2d_6 (Conv2D) (None, 22, 22, 64) 36928
================================================================
Total params: 55,744
Trainable params: 55,744
Non-trainable params: 0

作者说:

3 × 3 窗口 在第三层将只包含来自 7 × 7 窗口的信息 初始输入。 convnet 学习到的高级模式仍然非常 相对于初始输入而言很小,这可能不足以学习对数字进行分类(尝试通过仅通过以下窗口查看数字来识别数字) 7 × 7 像素!)。我们需要最后一个卷积层的特征来包含 有关输入整体的信息。

现在这个 7x7 的窗口是从哪里来的?第一层的窗口不也是 3X3 的吗?我错过了什么?

【问题讨论】:

    标签: tensorflow machine-learning deep-learning neural-network conv-neural-network


    【解决方案1】:

    让我们考虑这个例子:

            model = tf.keras.models.Sequential([
            tf.keras.layers.Conv2D(32, (3, 3), activation='relu',input_shape=(28,28,3)),
            tf.keras.layers.Conv2D(20, (3, 3), activation='relu'),
            tf.keras.layers.Conv2D(10, (3, 3), activation='relu')])
    

    这里是model.summary()的输出:

            Model: "sequential_1"
            _________________________________________________________________
            Layer (type)                Output Shape              Param #   
            =================================================================
            conv2d_3 (Conv2D)           (None, 26, 26, 32)        896       
                                                                            
            conv2d_4 (Conv2D)           (None, 24, 24, 20)        5780      
                                                                            
            conv2d_5 (Conv2D)           (None, 22, 22, 10)        1810      
                                                                            
            =================================================================
            Total params: 8,486
            Trainable params: 8,486
            Non-trainable params: 0
            _________________________________________________________________
    
            
    

    要计算输出形状,您可以使用以下公式:

    O = (W - K + 2P)/S + 1
    

    其中 O 是输出高度/宽度,W 是输入高度/宽度,K 是过滤器大小,P 是填充,S 是步幅大小。

    要计算 conv_layer 的参数编号,您可以使用以下公式:

    param_number_for_conv_layer = output_channel_number * (input_channel_number * kernel_height * kernel_width + 1)

    请参考this 输出形状中的“无”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 2017-06-17
      • 2020-04-17
      • 1970-01-01
      相关资源
      最近更新 更多