赞
踩
自从 AlphaGo 出现以来,机器学习无疑是当今最火热的话题,而深度学习也成了机器学习领域内的热点,现在人工智能、大数据更是越来越贴近我们的日常生活,越来越多的人工智能应用开始在移植到移动端上,那能够快速高效地在移动端部署深度学习模型就变成亟待解决的问题了。
现阶段 app 上使用的深度学习主要有两种模式:
首先在移动端做初步预处理,然后把数据传到服务器进行预测后返回移动端。
优点:部署相对简单,现成的框架(caffe,theano,mxnet,Torch) 做下封装就可以直接拿来用;使用服务器进行计算,性能强,能够处理比较大的模型
缺点:必须使用网络,而且展示效果依赖网速,不适合实时性要求高的应用。
根据硬件的性能选择模型,在服务器训练得到模型,在手机上进行预测的过程。
优点:不需要使用网络,可以保护隐私
缺点:计算的性能、耗时等取决于移动端的性能,有些模型只能使用CPU,精度可能会有影响,无法进行类似云端的大规模分布式训练;移动端部署相对较麻烦,需要针对移动端进行优化;大模型耗费大量的资源(计算、内存、存储、电)。
下面主要介绍offline的部署方法。
主要分两个阶段,第一个阶段是训练并得到模型,第二个阶段则是在得到模型后,在移动端进行部署。本文主要讲解的为第二阶段。
在第一阶段训练模型中,已经有很成熟的开源框架和算法进行实现,但是为了能部署到移动端,还需要进行压缩加速。
目前深度学习在各个领域轻松碾压传统算法,不过真正用到实际项目中却会有很大的问题:
综合现有的深度模型压缩方法,它们主要分为四类:
方法名称 | 描述 | 应用场景 | 方法细节 |
---|---|---|---|
参数修剪和共享(parameter pruning and sharing) | 删除对准确率影响不大的参数 | 卷积层和全连接层 | 对不同设置具有鲁棒性,可以达到较好效果,支持从零训练和预训练 |
低秩因子分解(low-rank factorization) | 使用矩阵对参数进行分解估计 | 卷积层和全连接层 | 标准化的途径,很容易实施,支持从零训练和预训练 |
转移/紧凑卷积滤波器(transferred/compact convolutional filters) | 设计特别的卷积核来保存参数 | 只有卷积层 | 算法依赖于应用程序,通常可以取得好的表现,只能从零开始训练 |
知识蒸馏(knowledge distillation) | 训练一个更紧凑的神经网络来从大的模型蒸馏知识 | 卷积层和全连接层 | 模型表现对应用程序和网络结构较为敏感,只能从零开始训练 |
基于参数修剪和共享的方
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。