Windows Machine Learning-это высокопроизводительный API вывода машинного обучения, который работает от времени выполнения ONNX и DirectML.
API Windows ML является компонентом времени выполнения Windows и подходит для высокопроизводительных приложений с низкой задержкой, таких как рамки, игры и другие приложения в реальном времени, а также приложения, созданные с языками высокого уровня.
Этот репо содержит образцы и инструменты для машинного обучения Windows, которые демонстрируют, как создавать сценарии с питанием машинного обучения в приложения Windows.
Для получения дополнительной информации о Windows ML, включая пошаговые учебники и практические руководства, посетите документацию Windows ML.
| Образец/инструмент | Статус |
|---|---|
| Все образцы | |
| Винмлруннер | |
| Winml Dashboard |
Предварительные условия
Windows ML предлагает вывод машинного обучения через SDK входящих Windows, а также перераспределяемый пакет Nuget. В таблице ниже подчеркиваются аспекты доступности, распространения, поддержки языка, обслуживания и перспективного совместимости пакета в коробке и Nuget для Windows ML.
| В коробке | Nuget | |
|---|---|---|
| Доступность | Windows 10 - Build 17763 (RS5) или новее Для получения более подробной информации о поддержке версий, проверьте наши документы. | Windows 8.1 или новее Примечание . Некоторые API (т.е. VideoFrame) недоступны на старых OSES. |
| Windows SDK | Windows SDK - Build 17763 (RS5) или новее | Windows SDK - Build 17763 (RS5) или новее |
| Распределение | Встроенный в окна | Упаковать и распространять как часть вашего приложения |
| Обслуживание | Microsoft-управляемый (клиенты автоматически получают выгоду) | Разработчик |
| Вперед | Совместимость автоматически катится с новыми функциями | Разработчик должен обновлять пакет вручную |
Узнайте больше здесь.
В этом разделе вы найдете различные образцы модели для различных сценариев в различных предложениях API Windows ML.
Классификация изображений
Субдомен компьютерного видения, в котором алгоритм рассматривает изображение и назначает ему тег из коллекции предопределенных тегов или категорий, на которые оно было обучено.
| Тип приложения Windows Распределение | UWP В коробке | UWP Nuget | Настольный компьютер В коробке | Настольный компьютер Nuget |
|---|---|---|---|---|
| Алекснет | ✔# .net5 - Галерея образцов | |||
| Caffenet | ✔# .net5 - Галерея образцов | |||
| Денсенет | ✔# .net5 - Галерея образцов | |||
| EfficeNet | ✔# .net5 - Галерея образцов | |||
| Googlenet | ✔# .net5 - Галерея образцов | |||
| Началова1 | ✔# .net5 - Галерея образцов | |||
| Начало .2 | ✔# .net5 - Галерея образцов | |||
| Мнист | ✔c ++/cx ✔# | |||
| Mobilenetv2 | ✔# .net5 - Галерея образцов | |||
| Rcnn | ✔# .net5 - Галерея образцов | |||
| Resnet50 | ✔# .net5 - Галерея образцов | |||
| Shufflenetv1 | ✔# .net5 - Галерея образцов | |||
| Shufflenetv2 | ✔# .net5 - Галерея образцов | |||
| Squeezenet | ✔# ✔ Javascript | ✔c ++/winrt ✔# .net5 ✔# .NET CORE 2 | ✔c ++/winrt ✔# .net5 - Галерея образцов ✔ | |
| VGG19 | ✔# .net5 - Галерея образцов | |||
| VGG19BN | ✔# .net5 - Галерея образцов | |||
| Zfnet512 | ✔# .net5 - Галерея образцов |
Стиль перенос
Техника компьютерного зрения, которая позволяет нам пересекать содержание изображения в стиле другого.
| Тип приложения Windows Распределение | UWP В коробке | UWP Nuget | Настольный компьютер В коробке | Настольный компьютер Nuget |
|---|---|---|---|---|
| Fnscandy | ✔# - трансфер в стиле FNS ✔# - передача стиля в реальном времени |
Эти расширенные образцы показывают, как использовать различные функции привязки и оценки в Windows ML:
Пользовательская тензоризация : приложение консоли Windows (C ++/WinRT), которое показывает, как выполнять пользовательскую тензоризацию.
Пользовательский оператор (ЦП) : приложение для настольного компьютера, которое определяет несколько пользовательских операторов ЦП. Одним из них является оператор отладки, который мы приглашаем вас интегрировать в свой собственный рабочий процесс.
Выбор адаптера : настольное приложение, которое демонстрирует, как выбрать конкретный адаптер устройства для запуска вашей модели.
Идентификатор плоскости : приложение UWP и приложение WPF, упакованное с настольным мостом, разделяя ту же модель, обучаемую с помощью Azure Custom Vision Service. Для пошаговых инструкций для этого примера см. В блоге обновить приложение Winml до последних битов.
Custom Vision и Windows ML : Учебное пособие показывает, как обучить модель нейронной сети для классификации изображений продуктов питания с использованием Azure Custom Vision Service, экспортировать модель в формат ONNX и развернуть модель в приложении для машинного обучения Windows, работающего локально на устройстве Windows.
ML.NET и Windows ML : В этом учебнике показано, как обучить модель нейронной сети для классификации изображений продуктов питания с использованием ML.NET Builder, экспортировать модель в формат ONNX и развернуть модель в приложении для машинного обучения Windows Устройство Windows.
Анализ данных Pytorch : Учебное пособие показывает, как решить задачу классификации с нейронной сетью с использованием библиотеки Pytorch, экспортировать модель в формат ONNX и развернуть модель с приложением для машинного обучения Windows, которое может работать на любом устройстве Windows.
Классификация изображений Pytorch : Учебное пособие показывает, как обучить модель нейронной сети классификации изображений, используя Pytorch, экспортировать модель в формат ONNX и развернуть ее в приложении Windows Machine Learning, работающем на вашем устройстве Windows.
Обнаружение объекта Yolov4 : в этом уроке показано, как создать приложение UWP C#, которое использует модель Yolov4 для обнаружения объектов в видеопотоках.
Конверсия модели
Windows ML предоставляет возможности для вывода, работающие на двигателе времени выполнения ONNX. Таким образом, все модели, работающие в Windows ML, должны быть преобразованы в формат модели ONNX. Модели, построенные и обучаемые в исходных рамках, таких как Tensorflow или Pytorch, должны быть преобразованы в ONNX. Проверьте документацию, чтобы преобразовать в модель ONNX:
Оптимизация модели
Модели могут нуждаться в дальнейшей оптимизации, применяемой после преобразования для поддержки расширенных функций, таких как пакетирование и квантование. Проверьте следующие инструменты для оптимизации вашей модели:
Winml Dashboard (предварительный просмотр) : инструмент на основе графического интерфейса для просмотра, редактирования, преобразования и проверки моделей машинного обучения для двигателя вывода Windows ML. Этот инструмент можно использовать для обеспечения бесплатных размеров на моделях, которые были построены с фиксированными размерами. Загрузите версию предварительного просмотра
Оптимизация графика: оптимизация графика-это по существу преобразования на уровне графика, от небольших упрощений графа и устранения узлов до более сложных слияний узлов и оптимизации макета.
Квантование графика : квантование в времени выполнения ONNX относится к 8 -битному линейному квантованию модели ONNX.
Проверка модели
Winmlrunner : инструмент командной строки, который может запускать модели .onnx или .pb, где входные и выходные переменные-это тензоры или изображения. Это очень удобный инструмент для быстрого подтверждения модели ONNX. Он попытается загрузить, связать и оценить модель и распечатать полезные сообщения. Он также отражает измерения производительности.
Скачать x64 exe
Модель интеграция
Generator Code Winml (MLGEN) : расширение Visual Studio, которое поможет вам начать использовать API WINML в приложениях UWP, генерируя код шаблона при добавлении обученного файла ONNX в проект UWP. Из кода шаблона вы можете загрузить модель, создать сеанс, привязать входы и оценить с помощью кодов обертки. Смотрите документы для получения дополнительной информации.
Скачать для VS 2017, VS 2019
Галерея образцов WINML: Исследуйте различные сценарии и модели интеграции ML.
Ознакомьтесь с образцами модели и расширенными образцами сценариев, чтобы узнать, как использовать Windows ML в вашем приложении.
Мы всегда ищем вашу помощь, чтобы исправить ошибки и улучшить образцы. Создайте запрос на тягу, и мы будем рады взглянуть.
Этот проект принял код поведения с открытым исходным кодом Microsoft. Для получения дополнительной информации см. Кодекс поведения FAQ или свяжитесь с [email protected] с любыми дополнительными вопросами или комментариями.