这是我参与「第四届青训营 」笔记创作活动的的第5天,本次笔记主要总结安卓开发视频基础知识。
什么是端智能技术
端智能是指把机器学习/深度学习算法模型应用和部署到端设备上,这里“端设备”是相对于云服务而言的,可以是手机,也可以是物联网IoT设备。
端云协同:端智能不是云智能的替代,是云端机器学习的衍生,是要结合云和端各自的优势,在云端之间合理分配任务以获取问题最优解。
端智能技术实践案例——手写数字识别
问题:App要做一个手写输入法模块,支持输入数字0~9。
解决方案:
1.训练一个可以识别手写数字的机器学习模型。
2.将此模型部署应用到App中,实现手写输入到识别的过程,并将识别结果供给用户选择输入。
机器学习部分:
输入:手写输入数字(图片);
输出:其可能代表的数字数值,多种可能时给出各自置信度.
数据收集:
数据来源方式:
1.开源数据(MNIST)
2.合成数据
3.人工收集和标注的数据:①设计和实际需求贴合的一个数据采集程序;②兼顾不同年龄段,性别,左手/右手等.
数据增广:
旋转\平移\缩放变换
模型训练
1.搭建训练环境
2.训练样本处理
3.模型构建
4.模型训练
5.验证模型准确度
模型压缩和转换
移动端使用的是被优化的推理引擎,可以在不同cpu和gpu架构下更高效的执行模型推理计算.
移动端推理预测
推理预测是指设备上执行TensorFlow Lite 模型,具体步骤为:加载模型,构造模型输入,执行推理预测,获取推理运行结果.