----【模型部署】---- 【一】模型压缩的必要性与可行性? 模型压缩是指对算法模型进行精简,进而得到一个轻量且性能相当的小模型,压缩后的模型具有更小的结构和更少的参数,可以有效降低计算和存储开销,便于部署在端侧设备中。 随着AI技术的飞速发展,不管是移动端产品还是线上产品,进行AI赋能都成为了趋势。这种情况下,AI算法的实时性与减少内存占用都显得极为重要。AI模型的参数在一定程度上能够表达其复杂性,但并不是所有的参数都在模型中发挥作用,部分参数作用有限,表达冗余,甚至会降低模型的性能。 【二】X86和ARM架构在深度学习侧的区别? AI服务器与PC端一般都是使用X86架构,因为其高性能;AI端侧设备(手机/端侧盒子等)一般使用ARM架构,因为需要低功耗。 X86指令集中的指令是复杂的,一条很长指令就可以很多功能;而ARM指令集的指令是很精简的,需要几条精简的短指令完成很多功能。 X86的方向是高性能方向,因为它追求一条指令完成很多功能;而ARM的方向是面向低功耗,要求指令尽可能精简。 【三】FP32,FP16以及Int8的区别? 常规精度一般使用FP32(32位浮点,单精度)占用4个字节,共32位;低精度则使用FP16(半精度浮点)占用2个字节,共16位,INT8(8位的定点整数)八位整型,占用1个字节等。 混合精度(Mixed precision)指使用FP32和FP16。 使用FP16 可以减少模型一半内存,但有些参数必须采用FP32才能保持模型性能。 虽然INT8精度低,但是数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点。 不同精度进行量化的归程中,量化误差不可避免。 在模型训练阶段,梯度的更新往往是很微小的,需要相对较高的精度,一般要用到FP32以上。在inference的阶段,精度要求没有那么高,一般F16或者INT8就足够了,精度影响不会很大。同时低精度的模型占用空间更小了,有利于部署在端侧设备中。 【四】GPU显存占用和GPU利用率的定义 GPU在训练时有两个重要指标可以查看,即显存占用和GPU利用率。 显存指的是GPU的空间,即内存大小。显存可以用来放模型,数据等。 GPU 利用率主要的统计方式为:在采样周期内,GPU 上有 kernel 执行的时间百分比。可以简单理解为GPU计算单元的使用率。 【五】神经网络的显存占用分析 Float32 是在深度学习中最常用的数值类型,称为单精度浮点数,每一个单精度浮点数占用4Byte的显存。 在整个神经网络训练周期中,在GPU上的显存占用主要包括:数据,模型参数,模型输出等。 数据侧:举个🌰,一个323128128的四维矩阵,其占用的显存 = 323128128*4 /1000 / 1000 = 6.3M 模型侧:占用显存的层包括卷积层,全连接层,BN层,梯度,优化器的参数等。 输出侧:占用的显存包括网络每一层计算出来的feature map以及对应的梯度等。 【六】影响模型inference速度的因素? FLOPs(模型总的加乘运算) MAC(内存访问成本) 并行度(模型inference时操作的并行度越高,速度越快) 计算平台(GPU,AI协处理器,CPU等) 【七】为何在AI端侧设备一般不使用传统图像算法? AI端侧设备多聚焦于深度学习算法模型的加速与赋能,而传统图像算法在没有加速算子赋能的情况下,在AI端侧设备无法发挥最优的性能。 【八】减小模型内存占用有哪些办法? 模型剪枝 模型蒸馏 模型量化 模型结构调整 【九】有哪些经典的轻量化网络? SqueezeNet MobileNet ShuffleNet Xception GhostNet 【十】模型参数计算? 首先,假设卷积核的尺寸是,有个特征图作为输入,每个输出的特征图大小为,输出为个特征图。 由于模型参数量主要由卷积,全连接层,BatchNorm层等部分组成,我们以卷积的参数量为例进行参数量的计算分析: 卷积核参数量: 偏置参数量: 总体参数量: 【十一】模型FLOPs怎么算? 同样,我们假设卷积核的尺寸是,有个特征图作为输入,每个输出的特征图大小为,输出为个特征图。 由于在模型中卷积一般占计算量的比重是最高的,我们依旧以卷积的计算量为例进行分析: FLOPS(全大写):是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。 FLOPs(s小写):是floating point operations的缩写(s表示复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。 针对模型的计算量应该指的是FLOPs。 在上述情况下,卷积神经网络一次前向传播需要的乘法运算次数为: 同时,所要进行的加法计算次数分为考虑偏置和不考虑偏置: (1)考虑偏置的情况: 为了得到输出的特征图的一个未知的像素,我们需要进行$K\times KK\times K - 1$次加法,由于有C个通道,所以需要将结果乘以C,每个通道间的数要相加,所以需要C - 1次加法,最后再加上偏置的1次加法。 所以总的加法计算量如下: 所以总的卷积运算计算量(乘法+加法): (2)不考虑偏置的情况: 总的卷积计算量:
点赞 23
评论 3
全部评论

相关推荐

SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务