首页 文章

未找到金属设备/初始化CoreML模型时声明网络时出错

提问于
浏览
1

当尝试使用任何Apple的CoreML教程(例如,this one)时,代码初始化模型时如下:

let model = try VNCoreMLModel(for: MobileNet().model)

我在该段的最后一行的模型(MobileNet.swift)的自动生成代码中收到以下错误:

let bundle = Bundle.main
let assetPath = bundle.url(forResource: "MobileNet", withExtension:"mlmodelc")
try! self.init(contentsOf: assetPath!)

错误: Thread 5: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=com.apple.CoreML Code=0 "Error in declaring network." UserInfo={NSLocalizedDescription=Error in declaring network.}

另外,我在控制台中获得以下输出:

2018-06-23 15:46:27.216514-0700 Vision+ML Example[375:20287] [espresso] [Espresso::handle_ex_] exception=Metal device not found.
2018-06-23 15:46:27.328956-0700 Vision+ML Example[375:20287] [espresso] [Espresso::handle_ex_plan] exception=Error creating mps kernel
2018-06-23 15:46:27.329321-0700 Vision+ML Example[375:20287] [coreml] Error in adding network -1.
2018-06-23 15:46:27.347582-0700 Vision+ML Example[375:20287] [coreml] MLModelAsset: load failed with error Error Domain=com.apple.CoreML Code=0 "Error in declaring network." UserInfo={NSLocalizedDescription=Error in declaring network.}
2018-06-23 15:46:27.347759-0700 Vision+ML Example[375:20287] [coreml] MLModelAsset: modelWithError: load failed with error Error Domain=com.apple.CoreML Code=0 "Error in declaring network." UserInfo={NSLocalizedDescription=Error in declaring network.}

...而应用程序崩溃了 .

这里发生了什么?我只是从Apple的开发站点运行教程,没有别的! (我正在测试iPhone 5s,iOS 12 beta 2,并且正在使用Xcode 10.0 beta 2运行macOS 10.14 beta 2的MacBook Air上进行测试)

1 回答

  • 3

    这似乎是一个错误 . 表面上看,支持iOS 11(包括iPhone 5s)的所有设备都支持Vision和CoreML框架 . 当有人试图在不支持MetalPerformanceShaders(如iPhone 5s)的设备上加载 VNCoreMLModel 时,我希望CoreML能够回退到BNNS或其他代码路径 . 它至少应该产生一条错误消息,明确指出这是不受支持的,因为它不支持.847356_t .

    我鼓励你file a bug report以及所有上述细节 .

相关问题