Вопросы и ответы (часто задаваемые вопросы)

Эта страница содержит ответы на самые популярные вопросы сообщества о Windows ML.

Как узнать, будет ли модель ONNX работать с Windows ML?

Самый простой способ проверить, будет ли модель работать с Windows ML с помощью средства Запуска модели WinML. Кроме того, вы можете проверить версии ONNX и сборки Windows для получения дополнительных сведений обо всех поддерживаемых версиях ONNX для данного выпуска Windows.

Как преобразовать модель другого формата в ONNX?

С помощью WinMLTools можно преобразовать модели нескольких различных форматов, таких как Apple CoreML и scikit-learn, в ONNX.

При попытке экспорта и /или преобразования модели в ONNX возникают ошибки, которые говорят, что у моей модели есть "неподдерживаемые операторы". Что мне делать?

Некоторые операторы в собственной платформе обучения в настоящее время не поддерживаются версией ONNX. Во-первых, мы рекомендуем проверить поддерживаемые версии ONNX для целевой сборки Windows и попытаться преобразовать модель в максимальную поддерживаемую версию. Более поздние версии ONNX включают поддержку большего набора операторов по сравнению с предыдущими версиями.

Если вы продолжаете столкнуться с проблемами, рекомендуется работать с командой по обработке и анализу данных, чтобы избежать неподдерживаемых операторов. Одним из подходов, которые мы рекомендуем, является изменение архитектуры модели в исходной платформе и попытка преобразовать или экспортировать модель в целевую версию ONNX. Обратите внимание, что вам еще не нужно переобучение модели— вы можете попытаться преобразовать архитектуру и, если это успешно, можно перейти к полному переобучение модели.

Почему я не могу загрузить модель?

Существует несколько причин, по которым может возникнуть проблема с загрузкой модели, но одна из наиболее распространенных из них при разработке в UWP связана с ограничениями доступа к файлам. По умолчанию приложения UWP могут получать доступ только к определенным частям файловой системы и требовать разрешения пользователя или дополнительные возможности для доступа к другим расположениям. Дополнительные сведения см. в разделе "Разрешения на доступ к файлам ".

Какую версию WinMLTools следует использовать?

Мы всегда рекомендуем скачать и установить последнюю версию пакета winmltools . Это обеспечит создание моделей ONNX, предназначенных для последних версий Windows.

Можно ли использовать onnxmltools вместо winmltools?

Да, вы можете, но вам потребуется установить правильную версию onnxmltools , чтобы нацелить ONNX версии 1.2.2.2, которая является минимальной версией ONNX, поддерживаемой Windows ML. Если вы не уверены, какую версию необходимо установить, рекомендуется установить последнюю версию winmltools . Это гарантирует, что вы сможете нацелиться на версию ONNX, поддерживаемую Windows.

Какую версию Visual Studio следует использовать для получения автоматического создания кода (mlgen)?

Минимальная рекомендуемая версия Visual Studio с поддержкой mlgen — 15.8.7. В Windows 10 версии 1903 и более поздних версий mlgen больше не входит в пакет SDK, поэтому вам потребуется скачать и установить расширение. Существует один для Visual Studio 2017 и один для Visual Studio 2019.

При попытке запустить mlgen сообщение об ошибке и код не создается. Что может произойти?

Ниже приведены две наиболее распространенные ошибки при попытке выполнить mlgen:

  • Отсутствует обязательный атрибут "consumed_inputs": при возникновении этого сообщения об ошибке, скорее всего, вы пытаетесь запустить модель ONNX версии 1.2 с версией пакета SDK для Windows 10 старше 17763; Рекомендуется проверить версию пакета SDK и обновить ее до версии 17763 или более поздней.
  • Ошибка типа: тип (map(string,tensor(float)) выходного arg (потеря) узла (ZipMap) не соответствует ожидаемому типу...: если вы выполняете эту ошибку, скорее всего, модель ONNX является более старой версией, принятой WinML начиная с сборки 17763. Рекомендуется обновить пакет преобразователя до последней доступной версии и восстановить модель до версии 1.2 ONNX.

Что по умолчанию выполняется WinML?

Если устройство не указано для запуска с помощью LearningModelDeviceKind или если вы используете LearningModelDeviceKind.Default, система решит, какое устройство будет оценивать модель. Обычно это ЦП. Чтобы запустить WinML на GPU, укажите одно из следующих значений при создании LearningModelDevice:

  • LearningModelDeviceKind.DirectX
  • LearningModelDeviceKind.DirectXHighPerformance
  • LearningModelDeviceKind.DirectXMinPower

Замечание

Используйте следующие ресурсы, чтобы получить помощь по Windows ML.

  • Чтобы задать или ответить на технические вопросы о Windows ML, используйте тег windows-machine-learning в Stack Overflow.
  • Чтобы сообщить об ошибке, отправьте сообщение о проблеме на сайте GitHub.