Использование моделей машинного обучения
После обучения модели машинного вы можете использовать ее для создания прогнозов.
Модели ML.NET сериализуются и сохраняются в файл. Вы можете загрузить файл модели в любое приложение .NET и использовать его для выполнения прогнозов с помощью API ML.NET.
Model Builder упрощает использование модели в существующих приложениях с помощью фрагментов кода и в новых приложениях с помощью шаблонов.
Фрагмент кода
Если у вас есть приложение, которое вы хотите использовать для создания прогнозов, фрагмент кода упростит процесс. Чтобы использовать фрагмент кода в приложении, сделайте следующее:
- Добавьте ссылку на библиотеку классов, содержащую модель, из проекта, в котором будет использоваться модель.
- Добавьте фрагмент кода в приложение.
Фрагмент кода создает экземпляр входных данных модели. Затем он вызывает метод 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.