神经网络深度学习模型的占用GPU显存计算方法

对于神经网络的深度学习模型来说,识别的精度是很重要,但是模型也不能是无限制的增大,因此需要对神经网络的深度学习模型进行模型的压缩等

首先最最基本的就是对模型的大小进行最基本的模型大小计算,以及使用训练时候的显存的计算

以下是计算存储的计算单位数据:

1 G = 1000 MB
1 M = 1000 KB
1 K = 1000 Byte
1 B = 8 bit

模型中参数的类型分为两种:
一般一个8-bit的整型变量所占的空间为1B也就是8bit。而32位的float则占4B也就是32bit

float32 单精度浮点型
int32 整型

神经网络的模型训练中消耗显存的地方主要分为两种:

模型自身的参数(params)
模型计算产生的中间变量(memory)

1.模型自身参数计算参数
卷积神经网路的自身模型参数
主要包括以下的几种网络层结构

卷积层,通常的conv2d
全连接层,也就是Linear层
BatchNorm层
Embedding层
而不占用显存的则是:

刚才说到的激活层Relu等
池化层
Dropout层
具体显存计算方式:

Conv2d(Cin, Cout, K): 参数数目:Cin × Cout × K × K
含义:卷积层的占用显存大小为
卷积层的输入通道 x 输出通道数 x 卷积核的大小

可以看出对于卷积层的压缩就是对卷积核的通道平进行裁剪,从而压缩卷积层

和卷积核的个数没关?No

下面的是卷积层的计算关系:
CNN的卷积核通道数 = 卷积输入层的通道

你可能感兴趣的:(深度学习,神经网络,计算机视觉)