苹果的机器学习框架和工具
Apple提供了许多框架来帮助将机器学习集成到您的应用程序中。这些框架在不同的抽象级别上运行,但可以大致分为两大类:
- 任务级框架
- 模型级框架。
任务级框架
任务级框架提供的方法使您可以执行高级任务,而不必显式处理培训和部署机器学习模型。该框架包括许多预训练的模型,并将根据您要执行的任务选择一个模型。
Apple提供的关键任务级框架如下:
视觉:此框架提供高级API来执行任务,例如人脸检测,界标检测,条形码扫描和对象跟踪。该框架还提供了有用的方法,可用于准备与其他框架(例如Core ML)一起使用的图像。实际上,如果您想使用自定义的Core ML格式模型来处理应用程序中的图像和视频,则强烈建议使用Vision。您可以在https://developer.apple.com/documentation/vision上了解有关Vision框架的更多信息。
自然语言:此框架提供了高级API,用于分析文本并推论特定于语言的元素,例如名词,动词,形容词和命名实体,例如人,地方和组织。它也可以用来检测。https:// developer.apple.com/documentation/naturallanguage.
语音:此框架可用于识别音频流中的口头单词。该框架支持多种语言,并使用Apple服务器上托管的机器学习模型来实现其大部分功能。如果您在应用程序中使用此框架,则您的应用程序将需要Internet连接。值得注意的是,Apple对每天可以通过应用程序发出的请求数量设置了限制。您可以在https://developer.apple.com/documentation/speech上找到有关Speech框架的更多信息。
模型级框架
模型级框架提供了一种在应用程序中使用机器学习模型的机制。 Core ML是Apple的模型级框架,尽管您可以使用其他第三方框架来代替Core ML,但它通常是iOS开发人员的首选。任务级框架和Core ML之间的区别在于,您需要执行一些工作才能完成某些工作。任务级框架提供了方便的高级API,可处理许多任务,例如预处理输入,线程,使用适当的模型以及后处理模型输出。
但是,要使用Core ML实现等效功能,您将需要执行各种预处理和后处理操作。考虑到额外的开销,您可能会想问为什么我还要直接使用Core ML?有两个很好的理由。
- 对于您需要执行的高级任务,Apple的任务级框架可能不存在。例如,没有任务级框架来预测股价走势。
- 即使存在任务级框架,框架内部使用的模型也可能不足以满足您的需求。
Apple提供了Core ML格式的许多预训练模型,可以从https://developer.apple.com/machine-learning/models/下载。这些模型是开源的,Apple还提供了用于创建模型的Python源代码的链接。
除了Apple提供的模型外,您还可以从第三方Internet存储库中获取Core ML格式的模型。这些模型存储库通常称为模型动物园。在Internet上快速搜索Core ML模型Zoo应该返回几个选项。值得一提的是,使用这些第三方模型的风险自负。 - 格式转换器
Core ML Tools是Apple提供的Python模块,可用于将使用流行的开源工具(例如Scikit-learn,LightGBM和XGBoost)创建的模型转换为Core ML格式。您可以在https://pypi.org/project/ coremltools /上找到有关Core ML Tools的更多信息。
核心ML工具不支持某些框架,例如Google TensorFlow和Apache MXNet。 Google提供了名为tf-coreml的TensorFlow转Core ML转换器Python模块,可用于将TensorFlow模型转换为Core ML格式。您可以在https://github.com/tf-coreml/tf-coreml上找到有关tf-coreml的更多信息。
推荐代码
推荐
基础文章推荐
经典教程推荐
- onevcat 大神的《SwiftUI 与 Combine 编程》
- 更新近百篇SwiftUI教程《SwiftUI2020教程》
- 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》
技术源码推荐
推荐文章
CoreData篇
TextField篇
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- 《SwiftUI实战之TextField风格自定义与formatters》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
- 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
- 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
JSON文件篇
一篇文章系列
- SwiftUI一篇文章全面掌握List(教程和源码)
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
- SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
- SwiftUI一篇文章全面掌握Form(教程和源码)
- SwiftUI Color 颜色一篇文章全解决
技术交流
QQ:3365059189
SwiftUI技术交流QQ群:518696470
- 请关注我的专栏icloudend, SwiftUI教程与源码
https://www.jianshu.com/c/7b3e3b671970