神经网络的全链接层可以看成两个矩阵相乘的形式,如下图所示,一个MxN的矩阵乘以一个NxP的矩阵,得到一个MxP的矩阵,进行乘法的次数为:
【人工智能|全连接层的算力计算方式】(N)*(M*P)
加法次数为:
(N-1)*M*P
所以,综计算量为(N)*(M*P)+(N-1)*M*P = (2N-1)*M*P
文章图片
比如,就拿3*3的矩阵乘法为例:
文章图片
计算如下:
文章图片
文章图片
所以,它的计算量为:
乘法次数:3*3*3=27次
加法次数:2*3*3 =18次
算在一起浮点操作为27+18=45次
用公式计算(2N-1)*M*P=5*3*3=45次,互相印证符合。
当然,如果将MAC计算初始值看成0,则初始情况下实际上做了一个+0的加法操作,每个结果元素进行的加法次数也可以认为是N次而非N-1次,因为你可以认为一开始进行了加0操作嘛。这样的化公式就更简单,直接2N*M*P就可以了。
结束
推荐阅读
- windows|一步步教你查看cuda和cudnn版本
- 深度学习100例|深度学习100例 - 卷积神经网络(CNN)实现车牌识别 | 第15天
- R语言入门课|R语言使用ifelse函数实战
- 如何在Ubuntu中设置cron作业
- Vigenere密码解析和代码实现详细指南
- 多级队列(MLQ)CPU调度简介
- 回溯算法(N皇后问题解析和多语言代码实现)
- PHP Ds PriorityQueue pop()函数用法介绍
- C++标准模板库(STL)中的队列用法介绍