Использование моделей машинного обучения

Завершено

После обучения модели машинного вы можете использовать ее для создания прогнозов.

Модели ML.NET сериализуются и сохраняются в файл. Вы можете загрузить файл модели в любое приложение .NET и использовать его для выполнения прогнозов с помощью API ML.NET.

Model Builder упрощает использование модели в существующих приложениях с помощью фрагментов кода и в новых приложениях с помощью шаблонов.

Фрагмент кода

Если у вас есть приложение, которое вы хотите использовать для создания прогнозов, фрагмент кода упростит процесс. Чтобы использовать фрагмент кода в приложении, сделайте следующее:

  1. Добавьте ссылку на библиотеку классов, содержащую модель, из проекта, в котором будет использоваться модель.
  2. Добавьте фрагмент кода в приложение.

Фрагмент кода создает экземпляр входных данных модели. Затем он вызывает метод Predict в файле .consumption.cs для создания прогнозов с использованием предоставленных входных данных.

Шаблоны проектов

Код обучения и использования создается в процессе обучения автоматически. Точно так же Model Builder предоставляет следующие шаблоны для автоформирования новых приложений .NET для использования вашей модели.

Консольное приложение

Шаблон консольного приложения — это приложение .NET на C#, которое использует вашу модель для создания прогнозов. Она содержит следующие файлы:

  • Program.cs — точка входа вашего приложения. Как и фрагмент кода, этот файл создает экземпляр входных данных модели, использует метод Predict из файла .consumption.cs и отображает результат в консоли.
  • <MODEL-NAME>.mbconfig. Файл .mbconfig для модели и созданного кода обучения и использования. Эти файлы копируются из проекта библиотеки классов, в который изначально был добавлен проект машинного обучения.

Веб-интерфейс API

Шаблон веб-API — это проект ASP.NET Core, созданный с использованием минимальной модели приложений API ASP.NET, чтобы упростить размещение модели в качестве веб-службы. Веб-API обеспечивают гибкость, поскольку позволяют создавать прогнозы с помощью модели через веб-запросы HTTP с различных клиентов, таких как настольные, веб-и мобильные приложения.

Шаблон веб-API содержит следующие файлы:

  • Program.cs — точка входа вашего приложения. В этом файле приложение настраивает службу PredictionEnginePool с помощью внедрения зависимостей, определяет одну конечную точку /predict и запускает приложение для прослушивания входящих HTTP-запросов.

    В рамках определения конечной точки predict также определяется обработчик. Обработчик использует службу PredictionEnginePool для создания прогнозов по входящим запросам JSON, которые содержат входные данные модели. Обработчик затем возвращает результаты этих прогнозов клиенту.

  • <MODEL-NAME>.mbconfig. Файл .mbconfig для модели и созданного кода обучения и использования. Эти файлы копируются из проекта библиотеки классов, в который изначально был добавлен проект машинного обучения.

Важно!

Проект веб-API не использует метод Predict в файле .consumption.cs. Вместо этого он регистрирует PredictionEnginePool как службу с помощью внедрения зависимостей. PredictionEngine не является потокобезопасным. Кроме того, необходимо создать его экземпляр в каждой точке, в которой он понадобится в приложении. По мере увеличения размера приложения этот процесс может стать неуправляемым.

Для улучшенной производительности и потокобезопасности используйте сочетание внедрения зависимостей и службы PredictionEnginePool, которое создает объекты PredictionEngine (ObjectPool) для использования во всем приложении.

Дополнительные сведения о внедрении зависимостей см. здесь.

В следующем уроке вы будете использовать модель, обученную для прогнозирования отказа оборудования, в консольном приложении .NET.