卷积神经网络存在网络结构复杂,运算量大,速度慢的问题,对于一些实时性要求较高的应用来说具有较大的局限性,那么将大规模学习系统部署到移动设备上该如何解决呢?即在保持深度学习精度同时,如何降低深度学习的计算代价?
1. 网络剪枝
实现方式:
TF官方提供了详尽的Keras剪枝教程和Python API文档,以及训练稀疏模型等高级用法的指导。
目的:
找出这些冗余连接并将其移除,使其不再参与网络的前向或后向运算过程。
过程:
权重剪枝:
根据连接权重的绝对值大小来定义每条连接的重要程度
(1)后剪枝:训练完一个模型后直接对权重进行剪枝,不需要其他条件。
(2)训练时剪枝:训练迭代时剪枝。
2. 权值量化
量化的思想就是对权重数值进行聚类。统计网络权重和激活值的取值范围,找到最大值最小值后进行min-max映射把所有的权重和激活映射到到INT8整型范围(-127~128)。