AlexNet参数量、计算量的计算

参数量计算——

卷积层的参数数量就是一个卷积核的参数乘上卷积核的个数

卷积层参数量计算公式

K_{h} K_{w} 分别表示卷积核的高和宽,一般二者相等,C_{in} 表示卷积核的厚度,即输入的通道数;C_{out} 表示卷积核的个数,即输出的通道数。

最后加上C_{out} 是偏置值的个数

layer_num = (math.pow(int(layer.kernel_size[0]),2)*layer.in_channels+1)*layer.out_channels

全连接层的参数数量输入输出的神经元连接的那个权重


全连接层参数量计算公式

N_{in} 表示输入的神经元个数,N_{out} 表示输出的神经元个数。最后加上N_{out} 是偏置值的个数。如果上层是卷积层,N_{in} 就是上层卷积层的输出三维矩阵元素个数,即三个维度相乘。

layer_num = (layer.in_features+1)*layer.out_features

输出结果,不算池化层,AlexNet参数量约60M,其中最后三层全连接层贡献了绝大部分参数量,分别为36M、16M、4M,共56M

********************

Conv2d(3, 96, kernel_size=(11, 11), stride=(4, 4), padding=(2, 2))

layer[0] has 34944.0 / 34.125K / 0.0333251953125M params

Conv2d(96, 256, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2))

layer[2] has 614656.0 / 600.25K / 0.586181640625M params

Conv2d(256, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))

layer[4] has 885120.0 / 864.375K / 0.8441162109375M params

Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))

layer[5] has 1327488.0 / 1296.375K / 1.2659912109375M params

Conv2d(384, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))

layer[6] has 884992.0 / 864.25K / 0.843994140625M params

Linear(in_features=9216, out_features=4096, bias=True)

layer[8] has 37752832 / 36868.0K / 36.00390625M params

Linear(in_features=4096, out_features=4096, bias=True)

layer[9] has 16781312 / 16388.0K / 16.00390625M params

Linear(in_features=4096, out_features=1000, bias=True)

layer[10] has 4097000 / 4000.9765625K / 3.9072036743164062M params

alexnet has 62378344.0 / 60916.3515625K / 59.488624572753906M params need to train

********************



计算量 FLOPs 计算——

卷积层的计算量FLOPs等于参数量乘以feature_map的大小

对于某个卷积层,它的FLOPs数量为:[(Kh∗Kw∗Cin)∗Cout+Cout]∗(H∗W)=num_params∗(H∗W),其中num_paramsnum表示该层参数的数目。

以AlexNet网络第一卷积层为例,它的FLOPS数目为:[(11∗11∗3)∗96+96]∗(55∗55)=105,705,600

全连接层的计算量FLOPs即是该层参数数目

对于全连接层,由于不存在权值共享,它的FLOPs数目即是该层参数数目:Nin∗Nout+Nout

运用上面的规律,我们便可以很轻松地计算出AlexNet网络的parameters和FLOPs数目,如下图:



参数量计算详解



有关FLOPS的定义与计算

FLOPS(即“每秒浮点运算次数”,“每秒峰值速度”),是“每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。

一个MFLOPS(megaFLOPS)等于每秒一佰万(=10^6)次的浮点运算,

一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,

一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,(1太拉)

一个PFLOPS(petaFLOPS)等于每秒一千万亿(=10^15)次的浮点运算,

一个EFLOPS(exaFLOPS)等于每秒一佰京(=10^18)次的浮点运算。

浮点计算峰值=处理器个数×处理器主频×每秒可进行的最高浮点运算次数(FMAD,乘加指令)

CPU主频和浮点运算能力FLOPS的关系

有很多人认为CPU的主频就是其运行速度,其实不然。CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed)。CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系。主频和实际的运算速度存在一定的关系,但至今还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集、CPU的位数等等)。

由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。比如AMD公司的AthlonXP系列CPU大多都能以较低的主频,达到英特尔公司的Pentium 4系列CPU较高主频的CPU性能,所以AthlonXP系列CPU才以PR值的方式来命名。因此主频仅是CPU性能表现的一个方面,而不代表CPU的整体性能。CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的。

矩阵乘法的浮点运算次数如何计算

假设有m * n的矩阵A, 和n * o的矩阵B, 则最终会形成m * o的矩阵C (C = A * B)

其中n是A的宽度, 也是B的高度.

最终总的运算量需要m * o * n次乘加.

将1次乘加看成两次运算(一次乘法, 一次加法),

则最终需要 2 * m * o * n次运算, 这是总的浮点数运算量

AlexNet的需要的浮点能力计算


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