处理图片时如何计算CNN中的参数数量

时间:2019-06-12 13:26:43

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

我收到如下问题:

  

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

我知道如何解决一个卷积层情况,即参数个数应为(filter.shape[0]*filter.shape[1]*...*filter.shape[n] + bias) * number of filters
但是我不确定如何在多层情况下计算参数的数量。
有人可以帮我吗?
预先感谢。

2 个答案:

答案 0 :(得分:2)

在第一层之后,您有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

答案 1 :(得分:1)

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

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

因此,只需为每一层计算并相加即可。

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

第1层#params = 3x3x3x10个参数

第2层#params = 3x3x10x20个参数

总计=第1层#参数+第2层#参数