如何使用苹果Core ML模型构建基于机器学习的智能应用

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
薛之谦说:“我很怕只要一条段子不好笑你们就会离我而去”,他是个歌手啊。
浏览: 7005
关注: 23 人
1000人看问题
上趣蝌蚪,找小伙伴玩知识环亚科技门户网
站长邮箱:
当前位置: >
详解苹果Core ML:如何为iOS创建机器学习应用?
编译/吴攀 来源:机器之心 选自developer.apple
在WWDC 2017开发者大会上,苹果宣布了一系列新的面向开发者的机器学习 API,包括面部识别的视觉 API、自然语言处理 API,这些 API 集成了苹果所谓的 Core ML 框架;参阅机器之心报道《苹果开发者大会 WWDC 2017:首次全面展示苹果的人工智能实力》。软件主管兼高级副总裁 Craig Federighi 介绍说,Core ML 的核心是加速在 iPhone、iPad、Apple Watch 上的人工智能任务,支持深度神经网络、循环神经网络、卷积神经网络、支持向量机、树集成、线性模型等。大会之后,苹果开发者网站更新了相关文档,对 Core ML 进行了更加详细的介绍。机器之心在本文中对该文档的内容进行了翻译和整理。更多详情可访问原文档。
Core ML 文档地址:/documentation/coreml
Core ML 介绍
使用 Core ML,你可以将训练好的机器学习模型整合到你的应用中。它支持以下操作系统:
iOS 11.0+Beta
macOS 10.13+Beta
tvOS 11.0+Beta
watchOS 4.0+Beta
训练好的模型(trained model)是将一个机器学习算法应用到一个训练数据集之后所得到的结果。然后该模型可以基于新的输入数据而进行预测。比如,如果一个模型在一个地区的历史房价数据上进行了训练,那么它就可能能够根据房子的卧室和浴室数量来预测房价。
Core ML 是域特定的框架和功能的基础。Core ML 支持用于图像分析的 Vision;用于自然语言处理的 Foundation(比如 NSLinguisticTagger 类)和用于评估已经学习到的决策树的 GameplayKit。Core ML 本身构建于低层面的原语(primitives)之上,比如 Accelerate、BNNS 和 Metal Performance Shaders。
Core ML 为设备性能进行了优化,从而减少了内存占用和功耗。严格在设备上运行能够确保用户数据的隐私,并且能保证你的应用在没有网络连接时也能够工作和响应。
如何使用 Core ML?
获取Core ML模型
如何将 Core ML 模型用在你的应用中?Core ML 支持大量机器学习模型,包括神经网络、数集成、支持向量机和广义的线性模型。Core ML 需要 Core ML 格式(.mlmodel)。苹果已经以该格式提供了一些流行的开源模型,请访问:/machine-learning。你可以下载这些模型,并用在你的应用中。另外,一些研究组和大学也会发布自己的模型和训练数据,天下奇闻,这些可能并不是 Core ML 模型格式的。要使用这些模型,请将其转换成 Core ML 格式。
将Core ML模型用在你的应用中
下面给出了一个示例,将一个训练好的模型 MarsHabitatPricer.mlmodel 用在了一个简单应用中,以用来预测火星上的地价。
1. 将模型添加到你的Xcode项目
通过将模型拖拽到项目导航即可将该模型添加到你的 Xcode 项目。
你可以在 Xcode 中打开模型来查看关于该模型的信息&&包括模型的类型及其需要的输入和输出。该模型的输入是太阳能电池板和温室的数量,以及栖息地的大小(单位:英亩)。该模型的输出是该栖息地的预测价格。
2. 在代码中创建模型
Xcode 也会使用关于该模型输入和输出的信息来自动生成一个该模型的自定义的编程接口,你可以在代码中使用这些接口来和该模型进行交互。对于 MarsHabitatPricer.mlmodel,Xcode 会生成几个接口,其中 MarsHabitatPricer 表示该模型,MarsHabitatPricerInput 表示该模型的输入,MarsHabitatPricerOutput 则是该模型的输出。
使用生成的 MarsHabitatPricer 类的初始化器来创建该模型:
let model = MarsHabitatPricer()
3. 将输入值输入该模型
这个示例应用使用了 UIPickerView 来获取来自用户的输入值:
func selectedRow(for feature: Feature) -& Int {
return pickerView.selectedRow(inComponent: feature.rawValue)
let solarPanels = pickerDataSource.value(for: selectedRow(for: .solarPanels),
feature: .solarPanels)let greenhouses = pickerDataSource.value(for: selectedRow(for: .greenhouses),
feature: .greenhouses)let size = pickerDataSource.value(for: selectedRow(for: .size), feature: .size)
&&&&&&&&&&&&
责任编辑:
Copyright &
环亚科技门户网 版权所有iPhone机器学习编程框架让运行模型更容易
iPhone机器学习编程框架让运行模型更容易
iPhone机器学习编程框架让运行模型更容易,机器学习 iphone 苹果 ios
网易科技讯6月6日消息,据Venturebeat报道,在全球开发者大会上,苹果发布了其机器学习编程框架Core ML,它可帮助机器学习模型在苹果移动设备上运行更容易。Core ML将是苹果最新版移动操作系统iOS 11的重要组成部分,它允许开发者加载训练有素的机器学习模型到iPhone或iPad上,然后利用它们生成有关应用的内部洞见。虽然开发者过去可能也会自己完成类似工作,但新的编程框架可让应用利用机器学习在本地层面上处理数据,而无需将用户信息发送到云端。此外,新的编程框架也可优化苹果移动设备上的模型,这可以减少RAM会用和电量消耗。对于计算密集型任务(比如机器学习推理)来说,减少RAM和电量消耗都非常重要。在移动设备上处理机器学习数据可带来一系列好处。应用无需联网就可以利用机器学习模型带来的好处;无需等待信息在网络之间来回传输,为此它处理数据速度更快;用户还能加强保护隐私,因为数据不必离开设备本身,就可以享受智能化带来的好处。苹果并非唯一致力于将机器学习应用到移动设备上的公司。谷歌已经在几周前的开发者大会上宣布推出新的TensorFlow Lite编程框架,它可帮助开发者更轻松地开发机器学习模型,以便在低功耗Android设备上运行。开发者必须将训练好的模型转化为特殊格式,以便于Core ML兼容。他们可以将模型加载到苹果Xcode开发环境中,并在iOS设备上部署。该公司已经基于流行的开源项目推出4款预建机器学习模型,而且还开发出转换器,以便开发者能够更方便使用。
这种转化器可与流行框架兼容,包括Caffe、Keras、scikit-learn、XGBoost以及LibSVM等。如果开发人员利用不同框架开发出苹果不支持的模型,那么苹果可能会让你自己编写转化器。Core ML是苹果最新的Core框架,其他框架还有Core Location、Core Audio以及Core Image等,它们都可通过提取复杂的任务帮助开发者开发更先进的应用。此外,对于苹果未来硬件业务,Core ML也非常重要。据传苹果正开发专门处理机器学习任务的芯片,这种框架很可能是开发者使用它的“门户”。(小小)
关键词浏览:
8岁的小军(化名)在最近半年时间里个头疯长,长了差不多8厘米,原本坐在全班第一排的他,现在的身高1.32米已经排在了班里中等偏上的水平,每个孩子在长个头的时候,爸妈都会开心得合不拢嘴,可小军的妈妈却越来越着急,她发...
昨晚央视的315晚会揭露了不少消费陷阱和黑幕,但其中有一件事,可谓让以食为天的中国“吃货”们心惊胆战——来自日本核泄漏区的食品。...
套路贷和通常的高利贷有着本质上的区别:套路贷借款方并没打算让借款人还钱,借钱不过是其侵吞房产的借口。...
宁波的王先生30多岁,夫妻生活方面遇到了一些苦恼,找到了宁波东方专科医院,他说治疗以后更苦恼了。...
大卫愿意把“那种氛围”比做动物园,这些外国人成为“伪装者”,更像是善于表演的猴子,之所以受欢迎,是因为他们是白人。他们自称“白猴子”。...
自己的房子被前妻转租,摇身一变,成了一家汗蒸店。好不容易汗蒸店腾空了。紧跟着,前妻一家老小锅碗瓢盆地进来安营扎寨了。讽刺的是,前妻家的2套房子就在对面。杭州这个30来岁的男人家两次求助法院,都差点哭出来。...详解苹果Core ML:如何为iOS创建机器学习应用?
新浪创事记
作者:机器之心
获取Core ML模型
如何将 Core ML 模型用在你的应用中?Core ML 支持大量机器学习模型,包括神经网络、数集成、支持向量机和广义的线性模型。Core ML 需要 Core ML 格式(.mlmodel)。苹果已经以该格式提供了一些流行的开源模型,请访问:/machine-learning。你可以下载这些模型,并用在你的应用中。另外,一些研究组和大学也会发布自己的模型和训练数据,这些可能并不是 Core ML 模型格式的。要使用这些模型,请将其转换成 Core ML 格式。
将Core ML模型用在你的应用中
下面给出了一个示例,将一个训练好的模型 MarsHabitatPricer.mlmodel 用在了一个简单应用中,以用来预测火星上的地价。
1. 将模型添加到你的Xcode项目
通过将模型拖拽到项目导航即可将该模型添加到你的 Xcode 项目。
你可以在 Xcode 中打开模型来查看关于该模型的信息&&包括模型的类型及其需要的输入和输出。该模型的输入是太阳能电池板和温室的数量,以及栖息地的大小(单位:英亩)。该模型的输出是该栖息地的预测价格。
2. 在代码中创建模型
Xcode 也会使用关于该模型输入和输出的信息来自动生成一个该模型的自定义的编程接口,你可以在代码中使用这些接口来和该模型进行交互。对于 MarsHabitatPricer.mlmodel,Xcode 会生成几个接口,其中 MarsHabitatPricer 表示该模型,MarsHabitatPricerInput 表示该模型的输入,MarsHabitatPricerOutput 则是该模型的输出。
使用生成的 MarsHabitatPricer 类的初始化器来创建该模型:
let model = MarsHabitatPricer()
3. 将输入值输入该模型
这个示例应用使用了 UIPickerView 来获取来自用户的输入值:
func selectedRow(for feature: Feature) -& Int {
return pickerView.selectedRow(inComponent: feature.rawValue)
let solarPanels = pickerDataSource.value(for: selectedRow(for: .solarPanels),
feature: .solarPanels)let greenhouses = pickerDataSource.value(for: selectedRow(for: .greenhouses),
feature: .greenhouses)let size = pickerDataSource.value(for: selectedRow(for: .size), feature: .size)
4. 使用模型来做预测
MarsHabitatPricer 类有一个生成的 prediction(solarPanels:greenhouses:size:) 方法(method),可用于根据模型的输入值预测一个价格。在这个案例中,输入是太阳能电池板和温室的数量,以及栖息地的大小(单位:英亩)。这个方法的结果是一个 MarsHabitatPricerOutput 实例 marsHabitatPricerOutput
guard let marsHabitatPricerOutput = try? model.prediction(solarPanels: solarPanels,
greenhouses: greenhouses, size: size) else {
fatalError("Unexpected runtime error.")
获取 marsHabitatPricerOutput 的 price 属性来获取预测的价格,并将结果展示在该应用的用户界面上:
let price = marsHabitatPricerOutput.price
priceLabel.text = priceFormatter.string(for: price)
注:生成的 prediction(solarPanels:greenhouses:size:) 方法可能会报错。你会遇到的最常见的错误类型是你输入该方法的数据的类型与该模型所需的输入数据类型不符&&比如,格式不对的图片。在这个示例应用中,输入是 Double 类型的。任何类型不匹配都会在编译时显现,对于这个示例应用而言,如果有什么地方不对,它就会报出一个致命错误。
5. 构建和运行一个 Core ML 应用
Xcode 可以将该 Core ML 模型编译成一个资源(resource),其已经为设备上的运行进行了优化。这种优化了的模型的表示被包含在你的应用捆绑(app bundle)中,而且该应用在设备上运行时会使用这个模型来进行预测。
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
相关的资讯有:
相关的博文有:
苹果这次带来了三款新iPhone手机,根据之前曝光的消息iPhone 7s和7s Plus手机已经准备...
一加5今天已经正式开卖了,期待之中的现货不用抢并没有发生,还是在短短几分钟内就销...
对于现在的联想手机来说,抛弃了一系列子品牌后,打算重新整合资源开启逆袭之路,但是...
据CNBC网站北京时间6月23日报道,谷歌公司旗下全球最大视频网站YouTube周四宣布,每月...
据CNBC北京时间6月23日报道,比特币钱包公司Blockchain周四宣布已融资4000万美元(约...
北京时间6月22日晚间消息,西部数据今日发表声明称,在未经子公司SanDisk同意的前提下...
上线不足20天,腾讯手游《魂斗罗:归来》已经跌出苹果App Store免费榜单前10名。而《...
iOS 11 带来了诸多引人入胜的功能,如改进后的 App Store,可定制的控制中心,以及 iP...
在 watchOS 4 中,Apple Watch 将支持 Core Bluetooth 框架,这意味着 Apple Watch 将...
火影忍者手游野原琳在活动中曝光,这是上个版本预告的忍者,由于声优的事情耽搁了这个......
落梅点雪无痕,千里烟岚一叹。6月21日5:00—6月27日23:59,在小屋愿之庭的限时奖阁岚......
王者荣耀新版周瑜即将上线体验服,欢迎召唤师们来体验哟!下面就为大家介绍新版周瑜的......
夜雾迷城活动2月22日5:00—2月28日23:59,本次活动新增套装黎明之冠新月之吻,下面为......
Copyright (C)
All rights reserved.
请选择一张图片分享
要转发到新浪微博,请
要转发到QQ空间,请}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信