端侧机器学习:
1.延迟时间更短且互动更紧密
2.网络连接(对网络不依赖,可离线运行)
3.隐私保护
Tensorflow Lite是一个在移动设备和嵌入式系统上的机器学习部署框架:
跨平台性(iOS/android/Linux等)
设备:智能手机(android/iOS),基于Linux的设备(如Raspberry Pi,Coral开发版),微控制器(如Arduino)
场景:
文本(分类预测)
语音(识别/文字转语音/语音转文字)
图像(对象检测/对象查找/OCR/手势识别//人脸建模分割/聚类/压缩/超分辨率)
音频(翻译/语音合成)
内容(视频生成/文本生成/音频生成)
ML Kit:基于Tensorflow Lite,对流型端侧机器学习场景提供了一系列预训练模型;
可在IOT设备中加入硬件加速器来提高机器学习的运行速度
如coral—可加速机器学习神经网络的产品
微控制器上运行机器学习模型:
开发者无需手动构建 模型
已集成了特定硬件优化
例子:Arduino语音检测
优化端侧机器学习模型部署:(让模型更小,运行更快)
端侧设备算力有限,内存有限,耗电量,应用大小(优化很重要)
方法:
1.利用硬件加速器(GPU/高通DSP)
2.使用针对移动设备优化的模型结构。 取舍:模型精度(需要更多的运行时间)和模型大小速度
3.量化:减少模型权重和激活函数的位数(如将float32映射为int8)
4.剪枝:1.模型训练时,移除权重小于某阈值的连接;2.密集张量现在将变得稀疏(用0填充)
剪枝优点:模型变小,稀疏张量可压缩/模型的运行速度变快,需执行的操作变少
(剪枝可以和量化一起做,效果更好)