锐眼洞察 | Apple开源机器学习框架 Turi Create 简介与实践

作者:TalkingData研发工程师 张永超

本文为TalkingData原创,未经授权禁止转载。申请授权请在评论中留言联系!

logo.png

日前,苹果在 GitHub 平台上公布了 Turi Create 框架,苹果表示,这个框架旨在通过简化机器学习模型的开发,降低开发者构建模型的门槛。详细说明如下:

Turi Create 概述

Turi Create简化了自定义机器学习模型的开发。你不需要成为机器学习的专家,即可为你的程序添加推荐,对象检测,图像分类,图像相似度识别或活动分类。

  • 易于使用:让你聚焦于任务而不是算法
  • 可视化:内置的流式可视化功能可以探索你的数据
  • 灵活:支持文本,图像,音频,视频和传感器数据
  • 快速和可扩展性:可在单台机器上处理大型数据集
  • 易于准备配置:模型导出到Core ML,即可用于iOS,macOS,watchOS和tvOS应用程序

使用Turi Create,你可以处理很多常见的场景:

你还可以使用基本的机器学习模型做成基于算法的工具包:

支持的平台

Turi Create支持:

  • macOS 10.12+
  • Linux(依赖于glibc 2.12+)
  • Windows 10(需要WSL)

系统要求

  • Python 2.7(即将支持Python 3.5+)
  • x86_64架构

安装

Linux不同变种的安装详细说明,参阅LINUX_INSTALL.md。常见的安装问题,参阅INSTALL_ISSUES.md

苹果官方推荐使用环境virtualenv,安装或建立Turi Create。请务必使用你的系统pip安装virtualenv。

WX20180117-182218

安装Turi Create的方法参照标准的python包安装步骤。要创建一个名为venv的Python虚拟环境,请参照以下步骤:

WX20180117-182233
要激活新的虚拟环境并在此环境中安装Turi Create,请按照下列步骤操作:

WX20180117-182243
另外,如果你使用的是Anaconda,你可以使用它的虚拟环境:

WX20180117-182306
在您的虚拟环境中安装Turi Create:

WX20180117-182315

GPU支持

Turi Create不一定需要GPU,但某些模型可以通过使用GPU加速。如果要在安装turicreate包后启用GPU支持,请执行以下步骤:

  • 安装CUDA 8.0(说明
  • 为CUDA 8.0安装cuDNN 5(说明

确保将CUDA库路径添加到LD_LIBRARY_PATH环境变量。通常情况下,这意味着将以下行添加到 ~/.bashrc文件中:

WX20180117-182326
如果你将cuDNN文件安装到单独的目录中,请确保单独添加它。下一步是卸载mxnet并安装启用CUDA的mxnet-cu80包:

WX20180117-182336

确保你安装的MXNet版本与turicreate依赖的版本相同(当前为0.11.0)。如果你在设置GPU时遇到困难,可参阅MXNet安装说明

当然,除了上述的安装方式之外,你还可以从源码构建,如果想要从源码构建,可参阅BUILD.md中的详细说明。

猫狗大战

Turi Create可以训练定制的机器学习模型。这意味着可以开发可识别不同对象的模型,只要您使用大量图像训练模型即可。

这里我们以识别猫狗为例,建立一个自定义的模型,可以识别图像是猫还是狗。

1. 下载猫和狗的图像

第一步是下载很多猫和狗的图像。这是必要的,因为我们将使用图像来训练我们的自定义模型。这里我使用的是Kaggle Dogs vs. Cats的数据集。如果你觉得在这里单独下载麻烦,可直接在Kaggle Cats and Dogs Dataset中下载全量数据集。

下载好图像数据集之后,我们解压到对应的文件夹内备用。

2. 标记数据、训练模型

在开始训练我们的模型前,首先需要对每一张图像标记其为‘cat’还是‘dog’。幸运的是Turi Create提供了标记基于不同文件夹的图像的功能,具体代码如下:

WX20180117-182352

标记完成后,可以看到数据集的全局情况:

上述代码的最后一行 data.explore(),会自动打开Turi Create的图像可视化查看工具,在这里你可以看到每张图像以及相应的标记,也是一种核查标记是否正确的方式。

数据集准备完成后,就可以进行模型的训练了。在训练的时候,会将数据集按照‘二八原则’进行训练集和测试集划分,然后进行模型训练:

WX20180117-182407

训练的过程可能会花一点时间,长短取决对机器的配置。在训练的过程中,Turi Create会打印出每一步执行的动作,如下:


……

最终我们得到的正确率为:0.986954749287,但看这个结果还不错。并且已经导出了mymodel.model和支持Core ML 的 CatsAndDogs.mlmodel

3. 移植模型到iOS应用程序

有了CatsAndDogs.mlmodel模型文件后,我们就可以将其移植到iOS应用程序中了。关于如何集成,可参考Apple官方的图像识别例子,这里不再陈述:

总结

本篇内容对Apple公开的Turi Create机器学习框架进行了简单的介绍,并实践了Turi Create在图像识别方面的一些基本用法。Turi Create不仅仅能用于图像识别,在其他方面能有很好的表现,目前Turi Create还刚开源不久,相信在社区的力量下,会带来不同的功能和体验,拭目以待。

发表评论

电子邮件地址不会被公开。 必填项已用*标注