神经网络的计算量和参数量

FLOPS,即每秒浮点操作次数FLoating point OPerations per Second这个指标来衡量GPU的运算能力。
MACC,即乘加数Multiply-ACCumulate operation,或者叫MADD,来衡量模型的计算量

全连接层的参数量和计算量

parameter=(d_{in} +1)\times d_{out}
d_{in}表示输入的特征向量的维度,
+1表示偏置,d_{out}表示输出维度


FLOPS=[d_{in} +(d_{in} -1)+1]\times d_{out}
d_{in}表示乘法运算量
d_{in} -1表示加法运算量(权重矩阵与输入/上一层值的矩阵向量相乘所需的加法运算)
+1表示偏置

具有300个输入神经元和100个输出神经元的全连接层的参数量是:300×100+100=30100

卷积层的参数量和计算量

stride=1,N个输入与M个输出,第m个通道的最终输出由下式给出


\text { parameter }=\left(k_{w} \times k_{h} \times C_{i n}+1\right) \times C_{\text {out }}
k_{w} , k_{h}表示一个卷积核的宽和高,+1表示偏置,C_{out }个卷积核


F L O P s=\left[\left(C_{i n} \times k_{w} \times k_{h}\right)+\left(C_{i n} \times k_{w} \times k_{h}-1\right)+1\right] \times C_{\text {out }} \times w \times h
k_{w} ,k_{h} 分别表示卷积核的宽和高,其中 C_{i n} \times k_{w} \times k_{h} 表示乘法计算量, C_{i n} \times k_{w} \times k_{h}-1表示加法计算量,+1表示偏置, w,h 表示上一层 feature map的宽和高。

池化层

其他类型的层,例如池化层。这些其他层类型肯定需要时间,但它们不使用点积,因此不能用MACC测量。

示例:在112×112具有128通道的特征图上具有过滤器大小2和步幅2的最大池化层需要112×112×128=1,605,632 FLOPS或1.6兆 FLOPS。当然,如果步幅与滤波器尺寸不同例如3×3窗口,2×2步幅),则这些数字会稍微改变。

但是,在确定网络的复杂性时,通常会忽略这些附加层。毕竟,与具有100个 MFLOPSE的卷积/全连接层相比,1.6 MFLOPS非常小。因此,它成为网络总计算复杂度的舍入误差。

Batch normalization

在现代网络中,通常在每个卷积层之后都包含一个 batch norm层。针对每个输出值,计算公式如下
z=gamma*(y-mean)/sqrt(variance epsilon) beta
此处,y是上一层的输出图中的元素。我们首先通过减去该输出通道的平均值并除以标准偏差来对该值进行归一化( epsilon用于确保不除以0,通常为0.001),然后,我们将系数gamm缩放,然后添加一个偏差或偏移beta。每个通道都有自己的 gamma,beta,均值和方差值

因此,如果卷积层的输出中有C个通道,则 Batch normalization层将学习C×4参数,如下图所示

通常将Batch normalization应用于卷积层的输出后,在ReLU之前,我们可以做一些数学运算以使Batch normalization层消失!由于在全连接层中进行的卷积或矩阵乘法只是一堆点积,它们是线性变换,而上面给出的Batch normalization公式也是线性变换,因此我们可以将这两个公式组合为一个变换。我们只需要将Batch normalization参数合并到前面各层的权重中,也就是说我们可以完全忽略Batch Normalization层的影响,因为我们在进行推理时实际上将其从模型中删除了。

LSTM计算量和参数量估计

LSTM里面有 4 个非线性变换(3 个 门 + 1 个 tanh),每一个非线性变换说白了就是一个全连接网络,形如:W\left[h_{t-1}, x_{t}\right]+b 。其中,h_{t-1}, x_{t}维度是d_x + d_h,易得MACC为:
[(d_x + d_h) +1 ]*d_h*4
+1表示偏置


四个非线性变换中,还会对全连接层的输出进行激活函数计算(三个sigmoid和一个tanh),对于sigmoid的计算量为:(d_x + d_h) * d_h *4* 3个FLOPS。tanh的计算公式为:\frac{exp(x)-exp(-x)}{exp(x)+exp(-x)},其中共有八个加,减,乘,除,求幂,平方根等计算,所以计算量为:(d_x + d_h) * d_h * 8个FLOPS。

除此之外,LSTM除了在四个非线性变换中的计算,还有三个矩阵乘法(不是点积)、一个加法、一个tanh计算,其中三个矩阵乘法都是shape为(batch, d_h),则这四个运算的计算量为:batch * d_h*12 + batch * d_h * 8

????

综上所述,LSTM的计算量为:
d_x * d_h * 8 + d_h * (d_h + 20)个FLOPS

对于特征维128的输入,LSTM单元数为64的网络来说,LSTM的参数量为:((128 + 64) * 64 + 64) * 4 = 49408


激活函数计算量

非线性激活函数,例如ReLU或 sigmoid不用MACC进行度量,而是使用 FLOPST进行度量,原因是它们不做点积,ReLU:
max(a ,0)
这是在GPU上的一项操作,激活函数仅应用于层的输出,例如在具有J个输出神经元的完全连接层上,ReLU计算J次,因此我们将其判定为J \space FLOPS。而对于 Sigmoid激活函数来说,有不一样了,它涉及到了一个指数,所以成本更高
y=\frac{1}{1 +\exp(-z)}
在计算 FLOPS时,我们通常将加,减,乘,除,求幕,平方根等作为单个FLOP进行计数,由于在 Sigmoid激活函数中有四个不同的运算,因此计算为4 FLOPS

实际上,通常不计这些操作,因为它们只占总时间的一小部分,更多时候我们主要对矩阵乘法和点积感兴趣,对于参数量?注意了它压根没有参数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容