神经网络模型的压缩与量化——学习主流模型压缩技术,让模型运行更快更省内存

作者:禅与计算机程序设计艺术

1.简介

神经网络(NN)模型一直是人工智能领域的热门话题,其主要解决的是深度学习任务,在计算机视觉、自然语言处理等领域取得了很大的成功。但随着模型规模的扩大,训练时间也越来越长,部署到产品环节时效率也越来越低。如何减少模型的大小并提升其速度和性能至关重要。近年来,深度学习模型的压缩技术和量化技术也逐渐火起来。本文将介绍一些主流模型压缩技术,并用TensorFlow框架演示实践这些技术。

1.1 模型的定义

深度学习(Deep Learning) 是利用多层非线性变换将输入数据转换成输出数据的算法。其主要特点是特征提取能力强,能够自动找出图像或声音中的隐藏模式。一个典型的深度学习系统由输入层、隐藏层和输出层组成。输入层接收输入信号,隐藏层根据输入信号进行非线性映射,输出层再次对隐藏层的结果进行非线性映射,得到最后的输出结果。

1.2 模型的压缩方法

神经网络模型的压缩分为三种类型:剪枝(Pruning)、量化(Quantization)、裁剪(Slimming)。其中剪枝和裁剪都属于结构化方法,而量化是一种无损的方法。

(1)剪枝 Pruning

剪枝(Pruning)方法通过分析模型的权重和偏置矩阵,消除其冗余部分,从而降低模型的体积,达到模型压缩的目的。剪枝方法可以分为三类:

  • 一方面是按照阈值进行剪枝,即设定一个阈值,对于绝对值较小的权重、偏置等参数进行裁剪。这种方法简单易行,但是会引入噪声,

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132255979