在后台模式下使用 Core ML 对用户 activity 进行分类
Classifing user activity using CoreML in background mode
即使应用程序处于后台,我也想始终执行 CoreML 请求。我关注了一篇关于 Activity Classification with Create ML, CoreML3 的文章。它在前台运行良好,但在后台模式下停止工作。如何为此应用程序添加后台支持。当应用程序后台运行时,是否可以使用 CoreML 对用户 activity 进行分类?
作为解决方法,我添加了位置管理器以提供后台支持。位置管理器正在按预期为背景工作。但仍然 activity 分类请求返回 nil。
Activity 使用 Create ML 进行分类:
https://medium.com/skafosai/activity-classification-with-create-ml-coreml3-and-skafos-part-2-734f1ea2f6e
最后我找到了一个在后台运行的解决方案。
我遇到了这个问题
Insufficient Permission (to submit GPU work from background)
我将 MLModelConfiguration 配置为 cpuOnly 来解决这个问题。
let activityModel: MyActivityClassifier = {
do {
let config = MLModelConfiguration()
config.computeUnits = .cpuOnly
return try MyActivityClassifier(configuration: config)
} catch {
print(error)
fatalError("Couldn't create MyActivityClassifier")
}
}()
即使应用程序处于后台,我也想始终执行 CoreML 请求。我关注了一篇关于 Activity Classification with Create ML, CoreML3 的文章。它在前台运行良好,但在后台模式下停止工作。如何为此应用程序添加后台支持。当应用程序后台运行时,是否可以使用 CoreML 对用户 activity 进行分类?
作为解决方法,我添加了位置管理器以提供后台支持。位置管理器正在按预期为背景工作。但仍然 activity 分类请求返回 nil。
Activity 使用 Create ML 进行分类: https://medium.com/skafosai/activity-classification-with-create-ml-coreml3-and-skafos-part-2-734f1ea2f6e
最后我找到了一个在后台运行的解决方案。
我遇到了这个问题Insufficient Permission (to submit GPU work from background)
我将 MLModelConfiguration 配置为 cpuOnly 来解决这个问题。
let activityModel: MyActivityClassifier = {
do {
let config = MLModelConfiguration()
config.computeUnits = .cpuOnly
return try MyActivityClassifier(configuration: config)
} catch {
print(error)
fatalError("Couldn't create MyActivityClassifier")
}
}()