【机器学习】TensorFlow 在 iOS 端的用例

o_tensorflow_logo-alt@2x

机器学习于上世纪就已经被世人所知,但是受限制于计算机的计算能力和网络速度等原因,没有得到发展。在摩尔效应下,现在的计算机性能大幅提升,即便是手上的iPhone,都会比当时美国登月所使用的机器要强。于是,在这个背景下,机器学习开始飞速发展,各大公司都已经在这方面投入资源,希望能够分一杯羹。

Google 一直是以技术作为导向的公司,现在他们也开源了一套计算机引擎–TensorFlow。他支持PC和移动版本,并且学习资源充足。它具有:高度的灵活性、可移植性、自动求微分、多语言支持、性能最优化等特点。可以说是缩短了科研与产品之间的距离,省去了大量重复代码的编写时间。

TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
现在,我们可以很快速的将 TensorFlow 部署到移动平台上去,包括 iOS 和 Android 平台。以 iOS 为例,介绍一下如何部署:

第一步,下载 TensorFlow 文件

由于 TensoreFlow 已经在 Github 开源,可以直接下载:
Github 主页地址
V1.1.0 下载地址

第二步,下载 Model 文件

有了工具,还得有训练出来的模型,这里不需要我们再训练(也没有样本数据)。
下载现成的训练模型:
Inception v1
下载完成之后,在 camera 工程目录下新建 data 文件夹。将下载下来的如下文件拷入:
imagenet_comp_graph_label_strings.txt
tensorflow_inception_graph.pb

 

第三步,相关工具

在缺少 libtool 的情况下,是无成功进行编译的,安装的方式如下:
sudo apt-get install libtool

 

第四步,编译库文件

在如下目录执行脚本:
sudo ./tensorflow-master/tensorflow/contrib/makefile/build_all_ios.sh
这个编译过程大约要花费1个小时左右的时间(和机器性能有关)。
编译完成之后,生成 libtensorflow-core.a,将生成结果拷贝到 camera 工程目录下
tensorFlow

 

第五步,识别结果如图所示

杯子
cup

iPhone
iphone

鼠标
mouse

笔记本
thinkpad