博舍

深度学习中参数量与计算量的理解 gpt3的参数量计算

深度学习中参数量与计算量的理解

接下来要分别概述以下内容:

1首先什么是参数量,什么是计算量

2如何计算参数量,如何统计计算量

3换算参数量,把他换算成我们常用的单位,比如:mb

4对于各个经典网络,论述他们是计算量大还是参数两,有什么好处

5计算量,参数量分别对显存,芯片提出什么要求,我们又是怎么权衡

 

1首先什么是计算量,什么是参数量

计算量对应我们之前的时间复杂度,参数量对应于我们之前的空间复杂度,这么说就很明显了

也就是计算量要看网络执行时间的长短,参数量要看占用显存的量

 

2如何计算参数量,计算量

(1)针对于卷积层的

其中上面的公式是计算时间复杂度(计算量),而下面的公式是计算空间复杂度(参数量)

对于卷积层:

参数量就是(kernel*kernel)*channel_input*channel_output

kernel*kernel就是weight*weight

其中kernel*kernel=1个feature的参数量

计算量就是(kernel*kernel*map*map)*channel_input*channel_output

kernel*kernel就是weight*weight

map*map是下个featuremap的大小,也就是上个weight*weight到底做了多少次运算

其中kernel*kernel*map*map=1个feature的计算量

(2)针对于池化层:

无参数

(3)针对于全连接层:

参数量=计算量=weight_in*weight_out

 

3对于换算计算量

1一般一个参数是值一个float,也就是4个字节,

21kb=1024字节

4对于各个经典网络:

(1)换算

以alexnet为例:

参数量:6000万

设每个参数都是float,也就是一个参数是4字节,

总的字节数是24000万字节

24000万字节=24000万/1024/1024=228mb

(2)为什么模型之间差距这么大

这个关乎于模型的设计了,其中模型里面最费参数的就是全连接层,这个可以看alex和vgg,

alex,vgg有很多fc(全连接层)

resnet就一个fc

inceptionv1(googlenet)也是就一个fc

(3)计算量

densenet其实这个模型不大,也就是参数量不大,因为就1个fc

但是他的计算量确实很大,因为每一次都把上一个feature加进来,所以计算量真的很大

 

5计算量与参数量对于硬件要求

计算量,参数量对于硬件的要求是不同的

计算量的要求是在于芯片的floaps(指的是gpu的运算能力)

参数量取决于显存大小

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇