美文网首页
深度学习在移动端应用

深度学习在移动端应用

作者: 卡路fly | 来源:发表于2020-04-03 14:30 被阅读0次

深度学习预测过程

深度学习训练过程

根据误差调解全中参数,直到收敛。

【图4】


落地方案

服务端训练 + 移动端识别
移动端:搭建网络模型可以运行的框架

【图五】

模型选择 CNN卷积和池化

处理前一个输入,通过滑动窗口进行移动,当滑动窗口窗口进行移动的过程中,观察窗口下面所覆盖的节点在做什么运算
当为线性运算,为卷积运算;
最大值运算等则为池化运算;

CNN

第一层不停做卷积和池化运算,可看坐在做特征提取。
第二层根据上一层提取的特征进行拟合,得到想要输出。

框架:

基于Caffe进行二次开发

  • 可读性
  • 通用性
  • 图像领域应用已久

根据GPU的内存拷贝成本与运算效率综合考量,对MDL框架针对CPU做主要优化。

落地难点

服务端 移动端
so体积 不限制 特定App下严格限制
模型体积 500M+ <10M
加密 无需考量 特定App下严禁泄漏
预测速度 类库成熟 有待填补
内存限制 无严格限制 内存极其有限
耗电量 不限制 严格限制

so体积:代码剪枝

Before After
OpenBals(一套计算接口) 手工实现
Glog、Gflag 摘除
Protobuf(caffe模型使用进行持久化) 手工实现json解析
后向传播(训练过程需要) 摘除
缩减数量

模型体积:权值共享,通过量化进行减少

  • 纠正量化误差:分层对权重进行量化
  • 纠正量化偏好:引入随机化方案

加密:不对整个模型文件进行加密

速度优化

  • 调整overhead,在线操作放到离线来做
  • 常规优化:数值计算(高数太差……,总的来说通过技巧绕过复杂过程)
  • CPU Affinity:安卓8核手机,四大四小。设置亲密度来减少线程切换,强制使用大核。
  • NEON 向量运算器引入,自己写头文件intrinsics,不能过分使用,因为需要不停load,reload,导致延迟。
  • 对intrinsics使用内联汇编,循环展开。
  • 利用拓扑结构执行多线程:利用SplitLayer和ConcatLayer自动进行多线程分配。
  • 改用MobileNet模型

耗电量:精准确定预测时机

在移动客户端运行神经网络耗电量巨大:

  • 用户手机达到稳定一段时间开始识别
  • 通过选取合适的识别间隔

MDL调研

相关文章

  • MXNet实现卷积神经网络训练量化

    深度学习在移动端的应用是越来越广泛,由于移动端的运算力与服务器相比还是有差距,所以在移动端部署深度学习模型...

  • 深度学习在移动端应用

    深度学习预测过程 深度学习训练过程 根据误差调解全中参数,直到收敛。 【图4】 落地方案 服务端训练 + 移动端识...

  • MDL调研

    MDL介绍 在移动端应用深度学习技术比较典型的就是 CNN(Convolutional Neural Networ...

  • 学习笔记TF066:TensorFlow移动端应用,iOS、An

    TensorFlow对Android、iOS、树莓派都提供移动端支持。 移动端应用原理。移动端、嵌入式设备应用深度...

  • mobileNet

    MobileNet V1 1、为什么要设计mobilenet? 为移动端和嵌入式端深度学习应用设计的网络,使得在c...

  • 深度学习模型压缩与加速(一)综述

    由于我们的深度学习模型都部署在移动端,所以本篇就来总结一下深度学习模型压缩的方法。相对于服务器,移动端的存储空间、...

  • 移动端深度学习优化

    含代码 | 支付宝如何优化移动端深度学习引擎?

  • 移动端深度学习展望

    现状 人工智能、机器学习都已走进了我们的日常,尤其是愈演愈热的大数据更是跟我们的生活息息相关,做人工智能、数据挖掘...

  • Python 3 & Keras 实现Mobilenet

    MobileNet是Google提出来的移动端分类网络。在V1中,MobileNet应用了深度可分离卷积(Dept...

  • 测试工程师,必备这“7”个,手机测试技能

    移动应用安全近几年越来越被重视,目前针对移动端的应用也越来越多,每天有大量的数据从移动端发出,部分数据在移动端进行...

网友评论

      本文标题:深度学习在移动端应用

      本文链接:https://www.haomeiwen.com/subject/kkvhphtx.html