gpt4 book ai didi

ios - 如何与扩展共享 CoreML 模型?

转载 作者:行者123 更新时间:2023-12-05 05:19:47 24 4
gpt4 key购买 nike

我正在与应用程序扩展共享 CoreML 模型。 Xcode 为模型生成快速代码。为了在扩展中使用该代码,我还必须在应用程序扩展中包含相同的模型。有没有办法在应用程序中只包含一次模型,并在应用程序和扩展程序中使用?

最佳答案

您必须在您的项目中创建一个共享框架,该框架也包含在应用程序和扩展程序中。您将模型放在框架的资源文件夹中,您可以通过框架的包创建模型的路径或 url。

编辑:如果您将生成的模型类也放在框架中,您生成的模型应该会自动找到模型数据。它从类的包中创建模型 url(请参阅生成的 init 方法):

init(contentsOf url: URL) throws {
self.model = try MLModel(contentsOf: url)
}
convenience override init() {
let bundle = Bundle(for: MyModel.self)
let assetPath = bundle.url(forResource: "MyModel", withExtension:"mlmodelc")
try! self.init(contentsOf: assetPath!)
}

对于来自框架的类,Bundle(for: MarsHabitatPricer.self) 是框架的包。您的框架只需要导出模型的类,这样您就可以在应用程序和扩展程序中使用它。

另请注意,使用同样生成的 init(contentsOf:),您可以从您喜欢的everywere 加载您的模型。

关于ios - 如何与扩展共享 CoreML 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com