计算卷积层中的输出大小

May*_*ngh 53 python machine-learning deep-learning conv-neural-network

如果神经网络卷积层的输入是大小为 128X128X3 的图像并对其应用 40 个大小为 5X5 的滤波器,则输出大小是多少?

The*_*man 98

你可以使用这个公式[(W?K+2P)/S]+1

  • W 是输入音量 - 在你的情况下是 128
  • K 是内核大小 - 在您的情况下为 5
  • P 是填充 - 在你的情况下 0 我相信
  • S 是步幅 - 您没有提供。

所以,我们输入公式:

Output_Shape = (128-5+0)/1+1

Output_Shape = (124,124,40)
Run Code Online (Sandbox Code Playgroud)

注意:如果未提供,Stride 默认为 1,40in(124, 124, 40)是用户提供的过滤器数量。

  • 方括号“[]”实际上应该是[floor function](https://en.wikipedia.org/wiki/Floor_and_ceiling_functions) (6认同)
  • @asalimih 我刚刚进行了一个小测试,在我的情况下它似乎四舍五入。请随意创建一个输入形状为 224 的模型并进行复制! (4认同)
  • 进一步阅读:https://en.wikipedia.org/wiki/Convolutional_neural_network#Convolutional_layer (2认同)
  • 如果计算的大小不是整数怎么办?数字应该如何四舍五入? (2认同)

小智 11

你可以通过两种方式找到它:简单的方法:input_size - (filter_size - 1)

W - (K-1)
Here W = Input size
            K = Filter size
            S = Stride
            P = Padding
Run Code Online (Sandbox Code Playgroud)

但是第二种方法是找到输出大小的标准。

Second method: (((W - K + 2P)/S) + 1)
        Here W = Input size
        K = Filter size
        S = Stride
        P = Padding 
Run Code Online (Sandbox Code Playgroud)