Ошибка сборки ML для Catalyst (Xcode 12 GM)
У кого-нибудь еще есть проблемы с выпуском GM с моделями машинного обучения и есть решение для этого? Я получаю следующую ошибку:
Type 'MLModel' has no member '__loadContents'
Я очистил проект + удалил производные данные (это сгенерированный файл, который помещается в папку производных данных)
Я заметил, что этого метода не должно быть для Mac OS 10.15, который я использую, но он по какой-то причине существует.
Я также заметил, что этот API все еще находится в стадии бета-тестирования, а GM - производственная сборка? https://developer.apple.com/documentation/coreml/mlmodel
Должен ли я регенерировать модель машинного обучения?
Ответы
Основная причина этого:
Компилятор CoreML в Xcode 12.0 GM генерирует код, в котором символы доступны только в macOS BigSur, вызывая проблему компиляции. Если целью является создание катализатора или приложения только для macOS с Xcode 12.0
Шаги по исправлению:
- В настройках целевой сборки вы можете установить для COREML_CODEGEN_LANGUAGE значение «Нет».
- Откройте терминал, затем перейдите в папку .mlmodel.
- Введите «xcrun coremlcompiler generate <YourModel.mlmodel> --language Swift».
- Это создаст файл <YourModel.swift> в той же папке.
- Откройте Xcode и добавьте в свой проект <YourModel.swift>.
- Щелкните <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)
методы исправить быстрый файл.