第19章 TensorFlow移动端应用
深度学习在声频、图像、视频处理上已经取得了令人印象深刻的进步,但它通常运行在功能强大的计算机上,如果需要运行在手机等移动设备或者树莓派等嵌入式平台上呢?
TensorFlow目前是最有竞争力成为未来主流的深度学习框架,谷歌公司不仅为自己研发的操作系统——Android提供了TensorFlow移动端支持,而且对iOS和树莓派也提供了移动端支持。
19.1 移动端应用原理
在移动端或者嵌入式设备上应用深度学习,有两种方式:一是将模型运行在云端服务器上,向服务器发送请求,接收服务器响应;二是在本地运行模型。一般来说,采用后者的方式,也就是在PC上训练好一个模型,然后将其放在移动端上进行预测。
使用本地运行模型原因在于,首先,向服务端请求数据的方式可行性差。移动端的资源(如网络、CPU、内存资源)是很稀缺的。例如,在网络连接不良或者丢失的情况下,向服务端发送连续的数据的代价就变得非常高昂。其次,运行在本地的实时性更好。但问题是,一个模型大小动辄几百兆,且不说把它安装到移动端需要多少网络资源,就是每次预测时需要的内存资源也是很多的。那么,要在性能相对较弱的移动/嵌入式设备(如没有加速器的ARM CPU)上高效运行一个CNN,应该怎么做呢?这就衍生出了很多加速计算的方向,其中重要的两个方向是对内存空间和速度的优化。采用的方式一是精简模型,既可以节省内存空间,也可以加快计算速度;二是加快框架的执行速度,影响框架执行速度主要有两方面的因素,即模型的复杂度和每一步的计算速度。
精简模型主要是使用更低的权重精度,如量化(quantization)或权重剪枝(weigh
本章节详细探讨了TensorFlow在移动端的原理和实践,包括模型量化以减少内存和提升速度,以及在iOS和Android系统的具体实现。量化通过降低权重精度来优化模型,而iOS实践部分详细介绍了环境准备、模型编译与运行。Android实践同样涉及环境配置、模型编译,并展示了在树莓派上的应用潜力。
订阅专栏 解锁全文
711

被折叠的 条评论
为什么被折叠?



