Posted on 2. September 2017

Cognitive Toolkit Model Evaluation для UWP

Microsoft Cognitive Toolkit (CNTK) 2.1 добавила поддержку оценки образцов для UWP приложений. Это означает, что Вы можете оценивать продуктивность Ваших Windows приложений, опубликованных в Windows Store! В этом блоге Вы узнаете, как можно внедрить AI продуктивность в Ваши приложения.

Цикл целенаправленного интеллекта

Облачные устройства могут выполнять операции локально или помещать их на облако. Фактически неограниченная вычислительная мощность облака делает его хорошим выбором для запуска задач, требующих значительной вычислительной продуктивности, но не требующих низкой латентности. В машинном обучении примером такой задачи является модельное обучение. Для обучения модели может потребоваться несколько часов или дней, но как только модель будет обучена, развертывание ее ближе к тому, где генерируются данные, имеет некоторые очень полезные свойства. Во-первых, это уменьшает задержку округления, по сути неотвратимую в облачной связи. Это имеет решающее значение для чувствительных к времени сценариев глубокого обучения, таких как самозахватывающие автомобили и обнаружение отказа промышленного оборудования. Во-вторых, он может разблокировать данные, которые ранее были отброшены из-за затрат на сетевую передачу. И, наконец, он предоставляет решения для машинного обучения в сценариях с прерывистой сетевой связью.

Microsoft ссылается на устройства с нетривиальной вычислительной продуктивностью, которые находятся ближе к источнику данных (таких как устройства «интеллектуальной грани»). Устройства интеллектуальной грани могут сильно отличаться в зависимости от сценария, как показано на рисунке ниже.

В цикле целенаправленного интеллекта подробно изучаются модели, развернутые на облаке. Кроме того, край подает ценные данные обратно в облако, где модели улучшаются и перераспределяются, что полностью завершает эффективный цикл.

Улучшения, описанные в этой статье, позволяют UWP приложениям быть частью интеллектуального круга, в котором подробно оцениваются модели обучения.

Пример классификации изображений

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

Код для всей системы доступен в CNTK Github реестре.

В настоящее время поддерживаются только C++ CNTK UWP. Однако образец демонстрирует, как решение UWP на основе C# может выполнять оценку модели, ссылаясь на WinRT библиотеку, которая обертывает UWP-совместимые CNTK компоненты, доступные на NuGet.

packages.config определяет NuGet пакеты, используемые библиотекой, и указывает на UWP-совместимый пакет:

 



  

 

Этот NuGet пакет предоставляет UWP-совместимые CNTK компоненты, включая математическую библиотеку OpenBLAS, для оценки модели на основе ЦП. ImageRecognizerLib предоставляет методы Create и RecognizeObjectAsync, используемые для загрузки предварительно обученной модели CNTK и классифицирует указанный вход изображения как множество байтов.

Остальная часть решения представляет собой несколько простых элементов XAML интерфейса для принятия ввода от пользователя. Вот краткое изображение приложения в действии:


Теперь Вы знаете, как использовать недавно добавленную поддержку UWP в CNTK для обеспечения следующего уровня "интеллекта" для Windows приложений. Команда Microsoft ждет новых результатов и потрясающих приложений, разработанных с помощью этой технологии!