当前位置: 首页 > 知识库问答 >
问题:

计算卷积神经网络中MAC数的公式?

唐彬炳
2023-03-14

我找不到正确的公式来计算CNN中一个卷积层中的MAC数量。我从Quora尝试了这个公式

[((H-K+S) /S) *((W-L+S)/S)) *C*M*N] 

式中:输入特征映射的HW大小;KL滤波器大小S跨距C通道输入M输出特征映射N输入特征映射数

我举了一个例子:1个输入图像5x5x1 1个过滤器3x3x1然后我做了一个天真的计算,我得到了81个MAC。但当我使用上述公式时,ai得到了9。

我想有些事情我不明白。

提前感谢

共有1个答案

束俊材
2023-03-14

假设你有这些参数:
K是你的内核宽度和高度
C_in是进审量通道
C_out是输出通道数
H_out和W_out输出矩阵的高度和宽度

然后,您需要(K^2)*C_inMAC操作来计算每个输出特征映射,您将拥有这些输出特征映射的H_out*W_out*C_out。然后总MAC将是:

(K^2) * C_in * H_out * W_out * C_out
 类似资料:
  • 我是CNN研究的新手,我从看Andrew'NG的课程开始。有一个例子我不明白: 他是如何计算#参数值的?

  • 注意: 本教程适用于对Tensorflow有丰富经验的用户,并假定用户有机器学习相关领域的专业知识和经验。 概述 对CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题,其任务是对一组大小为32x32的RGB图像进行分类,这些图像涵盖了10个类别: 飞机, 汽车, 鸟, 猫, 鹿, 狗, 青蛙, 马, 船以及卡车。 想了解更多信息请参考CIFAR-10 page,以及Alex Kriz

  • 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网络

  • 我在Keras有卷积神经网络。我需要知道每个图层中要素地图的尺寸。我的输入是28 x 28像素的图像。我知道有一种计算方法,但我不知道如何计算。下面是我使用Keras的代码片段。 最后,这就是我想画的。非常感谢。

  • 我正在使用千层面为MNIST数据集创建CNN。我将密切关注这个示例:卷积神经网络和Python特征提取。 我目前拥有的CNN架构(不包括任何退出层)是: 这将输出以下图层信息: 并输出可学习参数的数量为217,706 我想知道这个数字是如何计算的?我已经阅读了许多资源,包括这个StackOverflow的问题,但没有一个明确概括了计算。 如果可能,每层可学习参数的计算是否可以泛化? 例如,卷积层:

  • 我正在试图理解卷积神经网络中的维度是如何表现的。在下图中,输入为带1个通道的28乘28矩阵。然后是32个5乘5的过滤器(高度和宽度步幅为2)。所以我理解结果是14乘14乘32。但是在下一个卷积层中,我们有64个5×5的滤波器(同样是步幅2)。那么为什么结果是7乘7乘64而不是7乘7乘32*64呢?我们不是将64个滤波器中的每一个应用于32个通道中的每一个吗?