如何在设计 CNN 时找到各种矩阵大小

数据挖掘 分类 美国有线电视新闻网 卷积 matlab 数学
2022-02-06 20:08:07

我正在尝试了解 CNN,尤其是使用 Matlab 作为编码语言的数学和工作机制。对于这个概念和相关的编程,我几乎没有混淆,并且非常感谢您提供直观的答案。

下面是我的 CNN 的 5 个类的结构。我只能计算第一个 Conv 层的输出结构并坚持确定参数的数量,即神经元的数量?

我可以计算的第一个卷积层的输出:在第一层中,一个大小的输入[50 50 2]与一组M_1应用于所有输入通道的 5 维滤波器进行卷积。第一个 2D 卷积层由M_1 = 20大小为 1 的滤波器组成,[5x5x 1]其步长(步幅)用于垂直和水平遍历输入,创建大小为 1 的特征图,{(h-f_h+1) x (w - f_w +1)x 1x M_1}所以(50-5+1)x(50-5+1)x20 = [46x46x 20]我们有 20 个通道。

1个回答

对于输入维度h * w * d、内核大小k * k和内核过滤器数量为 的 CNN 层,如果我们忽略偏差,我们f的参数数量为。k * k * d * f如果使用偏差,那么参数的数量变为(k * k * d + 1) * f

例如,5 * 5 * 2 * 20如果我们忽略偏差,则第一个 conv 层具有参数。有了偏差,参数的数量将变为(5 * 5 * 2 + 1) * 20

请注意,参数的数量不取决于步幅、填充、池化、dropout,也不取决于输入或输出的空间维度!

要找到网络中的参数总数,需要将模型中所有单独层的参数相加。