关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。这个问题似乎与帮助中心定义的范围内的编程无关。 10 个月前关闭。社区在 10 个月前审查了是否重新打开此问题并将其关闭:原始关闭原因未解决 改进此问题
如何计算卷积层的输出大小?
例如,我有一个 2D 卷积层,它接受 3x128x128 的输入,并有 40 个大小为 5x5 的过滤器。
您可以使用此公式 [(W−K+2P)/S]+1
。
W 是输入量-在您的情况下为 128
K 是内核大小-在您的情况下为 5
P 是填充 - 在你的情况下 0 我相信
是步幅 - 您没有提供。
所以,我们输入公式:
Output_Shape = (128-5+0)/1+1
Output_Shape = (124,124,40)
注意:如果未提供,Stride 默认为 1,(124, 124, 40)
中的 40
是用户提供的过滤器数量。
可以通过两种方式找到: 简单方法:input_size - (filter_size - 1)
W - (K-1)
Here W = Input size
K = Filter size
S = Stride
P = Padding
但是第二种方法是找到输出大小的标准。
Second method: (((W - K + 2P)/S) + 1)
Here W = Input size
K = Filter size
S = Stride
P = Padding
让我从简单的开始;因为你有输入和过滤器的方阵,所以让我得到一维。然后,您可以将相同的方法应用于其他维度。想象一下你在树之间建栅栏,如果有 N 棵树,你必须建 N-1 个栅栏。现在将这个类比应用于卷积层。
您的输出大小将是:输入大小 - 过滤器大小 + 1
因为你的过滤器只能有 n-1 个步骤作为我提到的栅栏。
让我们用这个想法计算你的输出。 128 - 5 + 1 = 124 其他维度也一样。所以现在你有一个 124 x 124 的图像。
那是一个过滤器。
如果您应用此 40 次,您将获得另一个尺寸:124 x 124 x 40
如果您想了解有关高级卷积算法的更多信息,这里是一个很好的指南:https://arxiv.org/pdf/1603.07285.pdf
公式:n[i]=(n[i-1]−f[i]+2p[i])/s[i]+1
在哪里,
n[i-1]=128
f[i]=5
p[i]=0
s[i]=1
所以,
n[i]=(128-5+0)/1+1 =124
所以输出层的大小是:124x124x40 其中'40'是过滤器的数量
(124*124*3)*40 = 1845120 宽度 = 124 高度 = 124 深度 = 3 号过滤器 = 40 步幅 = 1 填充 = 0
不定期副业成功案例分享