gpt4 book ai didi

swift - 后台运行coreml报错: Error computing NN outputs error

转载 作者:行者123 更新时间:2023-11-28 09:35:27 24 4
gpt4 key购买 nike

我在 iPhone 6 上运行来自 keras 的 mlmodel。预测经常失败并出现错误 Error computing NN outputs。有谁知道可能是什么原因以及我是否可以做些什么?

do {
return try model.prediction(input1: input)
} catch let err {
fatalError(err.localizedDescription) // Error computing NN outputs error
}

Model inputs and outputs

编辑: 我试过 apple's sample project那个在后台工作,所以它似乎特定于我们的项目或模型类型。

最佳答案

我自己在类似的“看似随机”的时候也犯了同样的错误。一些调试跟踪确定它是由应用程序有时在发送到后台时尝试加载其 coreml 模型,然后在重新加载到前台时崩溃或卡住引起的。

消息 Error computing NN outputs error 之前是:

Execution of the command buffer was aborted due to an error during execution. Insufficient Permission (to submit GPU work from background) (IOAF code 6)

我不需要(或不想)在应用程序处于后台时使用该模型,所以我检测到应用程序何时进入/退出后台,设置一个标志并在尝试调用之前使用保护语句模型。

  1. 使用 AppDelegate.swift 文件中的 applicationWillResignActive 检测何时进入后台并设置 Bool 标志,例如appInBackground = true。有关更多信息,请参见:Detect iOS app entering background

  2. 在同一 AppDelegate.swift 文件中使用 applicationDidBecomeActive 检测应用何时重新进入前台,并重置标志 appInBackground = false

  3. 然后在调用模型的函数中,就在调用模型之前,使用如下语句:

    guard appInBackground == false else { return }//要添加的新行
    守卫让模型=试试? VNCoreMLModel(for modelName.model) else { fatalError("could not load model")//加载模型的原始行

我怀疑这是最优雅的解决方案,但它对我有用。

我还没有确定为什么有时会尝试在后台加载模型。

在您链接到的 Apple 示例中,看起来他们的应用程序只会调用模型来响应用户输入,因此它永远不会尝试在后台加载模型。因此,我的情况有所不同……也可能是您的情况?

关于swift - 后台运行coreml报错: Error computing NN outputs error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48480610/

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