WWDC2018之Create ML(一)

WWDC2018刚刚过去一个不到一个月,开发者们是不是对iOS12的新特性蠢蠢欲试,在WWDC2018上,库老板发布了iOS12,watchOS 5,macOS Mojave和tvOS12。这次发布会升级了ARKit2,CoreML2,新增了Create ML。那么,我们一定很好奇新增的这个Create ML是什么?和CoreML又有什么关系,下面我带大家看一下。

Create ML是什么?

如果你用过CoreML的话,你应该知道,使用CoreML的前提是你需要机器学习已经训练好的模型,这个模型怎么来呢?使用tensorflow等神经网络框架训练出来,然后通过苹果的工具转换成相应的格式才能使用,但是这样的话,你需要学习相应的神经网络算法,写相应的神经算法去训练模型,这样学习成本成吨的上涨。这个时候,Create ML的出现,能够让你更加轻松的训练出模型,苹果是不是很贴心呢!

如何去做?

下面我将一步一步的演示最基本的做法!
我们都知道CoreML主要用于识别图像和自然语言,那么,我们这一篇以识别图像作为演示。

环境

电脑系统:macOS Mojave
Xcode版本:Xcode 10 beta2
开发语言:Swift4.2

制作图像分类器

目标:分类猫、狗、狮子、老虎、羊的图片
1.数据预处理
首先我们要收集猫、狗、狮子、老虎、羊的不重复图片数据,里面的80%的图片当做训练集,20%的图片当做测试集。
新建一个叫Training Data的文件夹,这个文件夹当做训练集的总文件夹,再这个文件夹再新建要分类的文件夹。

Training Data的文件目录结构

新建一个叫Testing Data的文件夹,这个文件夹当做测试集的总文件夹,和Training Data一样,里面再新建分类的子文件夹。
Testing Data的文件目录结构

总分类文件夹下的每个子分类的图片张数必须要一样,Training Data的每个子分类的图片至少10张,图片的数量越大,学习后的精确度越高,学习的时间也越长。这些图像不必是相同的大小,也不必是任何特定的大小,最好使用299x299以上像素的图像。比较常用的图像格式都可以,例如JPEG and PNG都可以。
下面我将使用每个分类总共使用50张图片,Training Data下各个分类下的文件夹下的图片数目分别是40张,Testing Data下的各个分类下的文件夹下的图片数目分别是10张.
2.新建一个macOS的Playground文件,注意这里必须选择macOS类型的,如果是iOS或者tvOS的话是无法导入Create ML库的。
创建playground

3.新建好之后可以输入创建图片分类器UI的代码
生成并启动Live View

这个时候我们再最右面看到图片分类器的Live View。后面的所有操作都是根据这个来操作的。
4.开始操作
展开Live View的ImageClassifier,我们可以看到好多陌生名词,我们一一解释下:

Max iterations:迭代次数。默认是10,越大训练的时间越长,但是不要过大,所以可以通过逐步的增加迭代次数来改善正确率。
Augmentation下面有4个选项,这4个选项是为了通过Flip(翻转),Rotate(旋转),Expose(曝光),Shear(裁剪)四种方式对同一张图片进行处理,这样的话,一张图片经过这四种处理,就变成多张图片。更有利于模型学习,这种技术叫做数据增强。一般情况下,数据不足的情况下会用这种方式来提高训练的准确性。
数据增强

这里有一个bug,部分机型测试时在勾选Augmentation的时候训练时,Live View会消失,这可能是数据增强之后数据集变大对内存的压力也变大的的原因。
下面开始训练:可以将Training Data文件夹拖到虚框里或者在上面的Training Data的Choose..选择Training Data文件夹。这时候,数据就会开始训练,因为我这里迭代次数默认是10,训练的时候,Live View会有进度条,控制台也会有进度的打印。最后结果如下:
训练结果的准确度

这里会有人疑问,为什么训练也会有正确率?
答案是作为训练过程的一部分,图像分类器会自动将训练数据分割成训练部分和验证部分,这两者都会影响训练,但方式不同。由于分割是随机进行的,所以每次训练模型时,您可能会得到不同的结果。
我们从控制台也可以看出这一点。
训练时的控制台的输出

这里是将训练集中的5%拿出来做验证部分,结果也可以看出来验证的正确率100%。
如果你看了官方文档,官方文档给出的训练结果截图和我这种情况不一样,那么不要慌!因为当验证部分和训练部分的准确度不一样的时候,就会出现分别显示训练部分和验证部分的准确度。下面是官方文档演示的结果截图:
官方示例截图

然后,再将Testing Data文件夹拖进去。得到结果:
测试结果的准确度

上面显示测试集预测的准确度为100%,下面是每张测试数据的图片的测试结果。
测试时的控制台的输出

从控制台可以看出进度和每一分类的准确度。
从结果来看我们这个模型准确率已经很高了,这样差不多就完成了,最后只要把模型保存下来就够了。
最后的编辑保存

填写Author,Description,License,Version,选好保存的地址,点一下Save按钮就保存下来了。
这样我们就可以使用训练好的模型用CoreML去happy的去创建app了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 上周三,终于鼓起勇气约了牙医去拔牙,左侧上边的智齿已经坏了一个洞,吃东西的时候很不舒服,刷牙有时候也刷不到,还会隐...
    铜豌豆xyn阅读 139评论 2 0
  • 智能手机的普及,让越来越多的人成为低头族,不管是上班的还是上学的,凡是有手机的,百分之九十九都在低头玩手机。手机...
    满分达人阅读 1,162评论 0 3
  • 张家界山高路堵,巍峨崎岖,簪子山离市区还有2个半小时的车程,因为这里都是小山丘,一座挨着一座,山不高但是很多,老人...
    桃花岛主芸芸阅读 496评论 2 2
  • 内心想说的话太多都会转成无言的感动。 不去想太多,更不要想太远,珍惜当下拥有的一切,从今天起做一个...
    _aqu阅读 218评论 0 0