【发布时间】:2018-10-08 17:37:40
【问题描述】:
是否可以使用 CoreML 模型发布 iOS 应用程序,然后让应用程序根据用户行为继续改进(训练)设备上的模型?因此,该模型将在设备上不断增长和改进,而无需服务器支持...
【问题讨论】:
-
这会很有趣,但我不相信这是可能的......
-
不幸的是,我认为现在无法做到这一点。您可以通过 REST API 将数据反馈回您的服务器,以便为将来的版本提供更多训练数据。
-
没有。培训涉及应用程序更新,这意味着得到 Apple 的批准。您有一些(次优)选项。 (1) 完成审批流程,该流程可能在一天内完成。 (2) 将您的应用程序绑定到服务器提供的模型。 (3) 其他人没有做过并且苹果会批准的事情。 CoreML 工作流程基于在将模型导入CoreML 之前对其进行训练。您可以尝试等待两个月,看看他们在 WWDC '19 上有哪些改进,但我不会屏住呼吸。
-
就像其他人指出的那样,目前很难或不可能做你想做的事。训练是一项非常昂贵的操作,训练模型需要大量时间。这就是为什么在服务器上而不是在设备本身上执行此操作的原因。已经说过你应该能够将信息发送到服务器并训练模型,然后最终下载模型。
-
之前评论者写的都是真的。然而......从 iOS 11.3 开始,Core ML 构建在其之上的 MPS 框架(至少对于 GPU 计算而言)可以在设备上进行训练。 Core ML 将在 iOS 12 中获得类似的功能似乎是合理的。此外,它有点 hacky,但你可以自己编写训练代码(可能使用 MPS),然后用你的 mlmodel 文件中的新参数覆盖旧的学习参数并编译将其导入设备上的新 Core ML 模型中。
标签: ios swift machine-learning coreml apple-vision