轻量化途径:
(1)减少内存读写,方法:减少参数量、权重量本身,减少feature map(中间层的输出结果)
(2)内存的读写规则:结构化剪枝(整行整列整通道整channel甚至整层的剪枝,内存读写就是规则的),非结构化剪枝(在feature map中直接进行剔除,这样内存读写就是不规则的)
(3)加速矩阵运算
考虑:参数量、计算量、内存访问量、 耗时、能耗、碳排放、 CUDA加速 、对抗学习
轻量化分类(把模型部署在终端边缘计算,实时推理)
一、模型瘦身:知识蒸馏 权值量化 剪枝(权重剪枝、通道剪枝)注意力迁移
(1)知识蒸馏:有一个大的模型可以看成是老师模型,去训练一个小的模型可以看成是学生模型,小模型不断深入模仿大模型,实现模型压缩和部署
(2)模型量化(权重量化):训练参数的话通常是在一些提供的模型上(Pytorch、TensorFlow)训出来大量几百万的参数(模型的权重)的数据类型都是flow32,会占一定内存,我们通过一种优化手段将这种数据格式量化为占用内存更小,便于计算的数据类型比如说int8这种格式,提高了推理的时间从而提升预测的效率。在同一层之间权重共享,不同层的权重分别进行聚类。原因在于:同一层的权重