Металлическое устройство не найдено / Ошибка в объявлении сети при инициализации модели CoreML - PullRequest
0 голосов
/ 24 июня 2018

При попытке использовать любое из учебных пособий Apple по CoreML (например, это ), когда код инициализирует модель следующим образом:

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 и собираюсь использовать MacBook Air с MacOS 10.14 beta 2 с Xcode 10.0 beta 2)

1 Ответ

0 голосов
/ 24 июня 2018

Это похоже на ошибку. Якобы платформы Vision и CoreML поддерживаются на всех устройствах, поддерживающих iOS 11 (включая iPhone 5s). Я ожидаю, что CoreML откатится на BNNS или другой путь кода, когда кто-то попытается загрузить VNCoreMLModel на устройство без поддержки MetalPerformanceShaders (например, iPhone 5s). По крайней мере, он должен выдавать сообщение об ошибке, в котором явно указывается, что это не поддерживается, поскольку, похоже, нет ключа функциональных возможностей или свободной функции, позволяющей определить, что это не поддерживается.

Я бы рекомендовал вам подать отчет об ошибке со всеми вышеперечисленными деталями.

...