Ошибка сборки ML для Catalyst (Xcode 12 GM)

Sep 16 2020

У кого-нибудь еще есть проблемы с выпуском GM с моделями машинного обучения и есть решение для этого? Я получаю следующую ошибку:

Type 'MLModel' has no member '__loadContents'

Я очистил проект + удалил производные данные (это сгенерированный файл, который помещается в папку производных данных)

Я заметил, что этого метода не должно быть для Mac OS 10.15, который я использую, но он по какой-то причине существует.

Я также заметил, что этот API все еще находится в стадии бета-тестирования, а GM - производственная сборка? https://developer.apple.com/documentation/coreml/mlmodel

Должен ли я регенерировать модель машинного обучения?

Ответы

6 COzkurt Sep 28 2020 at 06:19

Основная причина этого:

Компилятор CoreML в Xcode 12.0 GM генерирует код, в котором символы доступны только в macOS BigSur, вызывая проблему компиляции. Если целью является создание катализатора или приложения только для macOS с Xcode 12.0

Шаги по исправлению:

  1. В настройках целевой сборки вы можете установить для COREML_CODEGEN_LANGUAGE значение «Нет».
  2. Откройте терминал, затем перейдите в папку .mlmodel.
  3. Введите «xcrun coremlcompiler generate <YourModel.mlmodel> --language Swift».
  4. Это создаст файл <YourModel.swift> в той же папке.
  5. Откройте Xcode и добавьте в свой проект <YourModel.swift>.
  6. Щелкните <YourModel.swift> и закомментируйте метод, на который жалуется компилятор.

В моем случае комментирую:

class func load(contentsOf modelURL: URL, configuration: MLModelConfiguration = MLModelConfiguration(), completionHandler handler: @escaping (Swift.Result<Nudity, Error>) -> Void)

и

class func load(configuration: MLModelConfiguration = MLModelConfiguration(), completionHandler handler: @escaping (Swift.Result<Nudity, Error>) -> Void)

методы исправить быстрый файл.