让我们用3行代码创建一个Dog vs Cat分类器。
几周前,我买了一台新笔记本电脑-2019 MacBook Pro,此后我一直很喜欢它。 自然地,我开始尝试Swift和Xcode,主要是创建一些虚拟的iOS应用程序。 那就是我发现Create ML的地方-一种用于训练自定义神经网络的GUI工具。

> Photo by Tomáš Stanislavský on Unsplash
以下是直接来自Apple官方文档的快速声明:
将Create ML与Swift和macOS游乐场等熟悉的工具结合使用,可以在Mac上创建和训练自定义机器学习模型。 您可以训练模型以执行任务,例如识别图像,从文本中提取含义或查找数值之间的关系。[1]
真好 因此,您可以看到,它不仅像今天一样用于图像分类。
刚开始时要做个说明,对于大多数用户来说,创建ML肯定会有一个巨大的缺点-这是一个苛刻的要求:您需要使用macOS。
如果您没有Mac,这不是世界末日,因为存在MacInCloud.com之类的解决方案。 我尚未亲自测试过它们,因此无法保证您会获得完美的流畅体验-但一定要总比没有好。
综上所述,如果您想继续学习,则需要先运行macOS,并安装最新版本的Xcode。
这篇文章的结构如下:
· 数据集*载下**
· 3条线训练他们
· 模型训练
· 模型评估
· 模型保存
· 结论和下一步
简要地说,在下一篇文章中,我们将创建一个iOS应用并将我们训练有素的模型链接到该应用。 GitHub存储库已经存在,请随时查看。
数据集*载下**
如前所述,我们将制作一个Dog vs Cat图像分类器,并且可以从此处*载下**数据集。
如果您已经*载下**并解压缩了它,则在根文件夹中将具有以下结构:
├── test
│
├── cat
│
└── dog
└── train
├── cat
└── dog
您必须在此处注意两件事:
· 训练和测试文件夹中的子文件夹名称必须相同
· 预测的类别名称将从子文件夹名称中推断出来-此处为ergo猫和狗
还在关注吗? 太好了,让我们继续进行一切准备工作,然后再开始培训过程。
3条线来统治他们
现在,我们可以打开Xcode并创建一个新的Playground-macOS的空白:

根据需要命名,然后单击"下一步"。 现在,我们看到以下屏幕:

大! 在左侧,我们将编写代码,在右侧,我们将训练模型。
现在,我们可以删除该占位符代码,并输入以下3行:
import CreateMLUI
let builder = MLImageClassifierBuilder()
builder.showInLiveView()
您的屏幕应如下所示:

不用担心弃用警告,因为代码可以正常运行。 现在,我们可以单击代码下方的蓝色*放播**按钮。 几秒钟后,您将看到以下内容:

就是这样,我们可以开始培训了!
模型训练
好的,实际上,您现在要做的就是将火车文件夹拖到"开始训练的拖放图像"部分中:

培训过程将立即开始,并且由于我们有超过20K的培训图像,因此显然需要一些时间。 因此,喝杯咖啡,休息一下,或者只是看火车模型。
而现在,过了一段时间(在我的机器上大约半小时),模型得到了训练:

正如我们所看到的,它在训练集上表现出色,只剩下看它如何在以前看不见的数据上表现出色(在测试集上非常有效)。 让我们在下一部分中进行探讨。
模型评估
要评估测试集上的模型,只需将测试文件夹拖到"将图像拖放到开始测试"部分中:

测试过程将花费更少的时间,因为我们只有2500张图像用于测试。 不过,请随时休息一下直到完成。
好吧,完成了吗? 凉。 我们可以看到,测试集的准确性仍然令人印象深刻-98%。

现在我们知道我们的模型已经可以投入生产,让我们在下一部分中探讨如何导出它。
模型保存
我们需要保存此模型,以便稍后在iOS应用中使用它。 为此,在模型训练部分中向上滚动并展开下拉列表:

如果您对自动填充的选项感到满意,请单击"保存"。 请记住,默认情况下,模型将保存到Documents文件夹中-因此,让我们快速验证一下它是否在其中:

太棒了! 注意.mlmodel扩展名吗? 对于要在iOS上部署的任何模型,它都是必需的,因此请记住这一点。
今天到此结束,我们做一个简短的结论。
结论
经历了所有这些之后,您可能想知道模型的性能如何如此出色? 苹果公司的官方声明如下:
Create ML利用Apple产品(例如Photos和Siri)中内置的机器学习基础结构。 这意味着您的图像分类和自然语言模型更小,所需的训练时间更少。[2]
简而言之,这意味着Apple有很多预先训练的模型,只需要调整输出层即可(也称为Transfer learning)。 如果您在知道我在说什么之前使用过ResNet或AlexNet。
但是您可以在大约30分钟的时间内训练模型并在测试集上达到98%的准确性-仅3行代码就令人印象深刻。
请继续关注以下文章,我们将在本文中将该模型整合到iOS应用中。
谢谢阅读。
资源资源
[1] https://developer.apple.com/documentation/createml
[2] https://developer.apple.com/documentation/createml
(本文翻译自Dario Radečić的文章《Create ML: A GUI for training Neural Networks》,参考:https://towardsdatascience.com/create-ml-a-gui-for-training-neural-networks-72bd1d651275)