ChatGPT解决这个技术问题 Extra ChatGPT

关闭。此问题不符合 Stack Overflow 准则。它目前不接受答案。这个问题似乎与帮助中心定义的范围内的编程无关。 10 个月前关闭。社区在 10 个月前审查了是否重新打开此问题并将其关闭:原始关闭原因未解决 改进此问题

如何计算卷积层的输出大小?

例如,我有一个 2D 卷积层,它接受 3x128x128 的输入,并有 40 个大小为 5x5 的过滤器。

我投票结束这个问题,因为它不是关于 help center 中定义的编程,而是关于 ML 理论和/或方法 - 请参阅 machine-learning tag info 中的介绍和注意。

T
The BrownBatman

您可以使用此公式 [(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 是用户提供的过滤器数量。


进一步阅读:en.wikipedia.org/wiki/…
如果计算的大小不是整数怎么办?数字应该如何四舍五入?
@asalimih 我刚刚进行了一个小测试,在我的情况下似乎四舍五入。随意创建一个输入形状为 224 的模型并进行复制!
@PyWalker2797 afaik 它不是因为在输入平面上完成操作的方式是针对每个通道的,无论输入通道的数量是多少。
方括号“[]”实际上应该是 floor function
A
Abinav R

可以通过两种方式找到: 简单方法: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 

对于其他读者,您可以执行 WolframAlpha computation of this formula 来快速检查其中一些参数的效果。
S
Sam Oz

让我从简单的开始;因为你有输入和过滤器的方阵,所以让我得到一维。然后,您可以将相同的方法应用于其他维度。想象一下你在树之间建栅栏,如果有 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


R
Rahul Verma

公式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'是过滤器的数量


R
Ritesh Pratap Singh

(124*124*3)*40 = 1845120 宽度 = 124 高度 = 124 深度 = 3 号过滤器 = 40 步幅 = 1 填充 = 0


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅