CNN处理图片时如何计算参数个数

Bow*_*eng 2 machine-learning neural-network conv-neural-network

我得到一个问题如下:

假设您有一个 10x10x3 的彩色图像输入,并且您想堆叠两个内核大小为 3x3 的卷积层,分别带有 10 个和 20 个过滤器。这两层需要训练多少个参数?

而且我知道如何解决参数数量应该为 的单卷积层情况(filter.shape[0]*filter.shape[1]*...*filter.shape[n] + bias) * number of filters
但我不确定如何计算多层情况下的参数数量。
有人可以帮助我吗?
提前致谢。

小智 8

在第一层之后,您有 10 个通道而不是 3 个。

鉴于输入是 3x3,深度为 3 和 10 个过滤器,它会产生 (3*3*3+1)*10 个参数。

但是在第二层中,深度是 10,这是第一层的原因。所以它变成 (3*3*10+1)*20

(3*3*3+1)*10 + (3*3*10+1)*20 = 2100


Bur*_*000 2

只需添加每层的所有参数即可。您有一层的公式:

(filter.shape[0] filter.shape[1] ...*filter.shape[n] + 偏差) * 滤波器数量

因此,只需计算每一层的值并将其相加即可。

在您的示例中,这将给出(排除偏差):

第 1 层 #params = 3x3x3x10 参数

第 2 层#params = 3x3x10x20 参数

总计 = 第 1 层 #params + 第 2 层 #params