版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.10.16 星期二 |
前言
目前世界上科技界的所有大佬一致认为人工智能是下一代科技革命,苹果作为科技界的巨头,当然也会紧跟新的科技革命的步伐,其中ios API 就新出了一个框架
Core ML
。ML是Machine Learning
的缩写,也就是机器学习,这正是现在很火的一个技术,它也是人工智能最核心的内容。感兴趣的可以看我写的下面几篇。
1. Core ML框架详细解析(一) —— Core ML基本概览
2. Core ML框架详细解析(二) —— 获取模型并集成到APP中
3. Core ML框架详细解析(三) —— 利用Vision和Core ML对图像进行分类
4. Core ML框架详细解析(四) —— 将训练模型转化为Core ML
5. Core ML框架详细解析(五) —— 一个Core ML简单示例(一)
6. Core ML框架详细解析(六) —— 一个Core ML简单示例(二)
7. Core ML框架详细解析(七) —— 减少Core ML应用程序的大小(一)
Overview - 概览
安装应用程序后,将Core ML模型分发到用户的设备。
在用户设备上下载和编译模型 - 而不是将它们与您的应用程序捆绑在一起 - 对特定用例非常有用。 如果您的应用程序具有不同模型支持的各种功能,则在后台单独下载模型可以节省带宽和存储空间,而不是强制用户下载每个模型。 同样,不同的地区或区域可能使用不同的Core ML模型。 或者可以为用户离线调整模型,并通过无线方式提供更新。
Implement Downloading and Compiling in the Background - 在后台实现下载和编译
模型定义文件(.mlmodel)
必须在编译之前在设备上。 使用URLSession,CloudKit或其他网络工具包将应用程序的模型下载到用户的设备上。
调用compileModel(at:)生成用于初始化MLModel实例的.mlmodelc
文件。 该模型具有与应用程序捆绑的模型相同的功能。
// Listing 1
Compiling a model file and creating an MLModel instance from the compiled version
let compiledUrl = try MLModel.compileModel(at: modelUrl)
let model = try MLModel(contentsOf: compiledUrl)
Move Reusable Models to a Permanent Location - 将可重用模型移动到永久位置
要限制带宽的使用,请尽可能避免重复下载和编译过程。 该模型被编译到临时位置。 如果可以重用已编译的模型,请将其移动到永久位置,例如应用程序的支持目录。
// Listing 2
Copying the .mlmodelc file into your app's support directory
// find the app support directory
let fileManager = FileManager.default
let appSupportDirectory = try! fileManager.url(for: .applicationSupportDirectory,
in: .userDomainMask, appropriateFor: compiledUrl, create: true)
// create a permanent URL in the app support directory
let permanentUrl = appSupportDirectory.appendingPathComponent(compiledUrl.lastPathComponent)
do {
// if the file exists, replace it. Otherwise, copy the file to the destination.
if fileManager.fileExists(atPath: permanentUrl.absoluteString) {
_ = try fileManager.replaceItemAt(permanentUrl, withItemAt: compiledUrl)
} else {
try fileManager.copyItem(at: compiledUrl, to: permanentUrl)
}
} catch {
print("Error during copy: \(error.localizedDescription)")
}
后记
本篇主要讲述了在用户设备上下载和编译模型,感兴趣的给个赞或者关注~~~