Machine Learning-modellen gebruiken
Nadat u een machine learning-model hebt getraind, is het tijd om het te gebruiken, zodat u voorspellingen kunt doen.
ML.NET modellen worden geserialiseerd en opgeslagen in een bestand. U kunt het modelbestand in elke .NET-toepassing laden en deze gebruiken om voorspellingen te doen via ML.NET API's.
Met Model Builder kunt u uw model eenvoudig gebruiken in bestaande toepassingen met behulp van codefragmenten en in nieuwe toepassingen met behulp van sjablonen.
Codefragment
Als u een bestaande toepassing hebt waarin u uw model wilt gebruiken om voorspellingen te doen, vereenvoudigt een codefragment het proces. Een codefragment gebruiken in uw toepassing:
- Voeg een verwijzing toe naar de klassebibliotheek die uw model bevat uit het project waarin u het model gaat gebruiken.
- Voeg het codefragment toe aan uw toepassing.
Het codefragment maakt een exemplaar van uw modelinvoer. Vervolgens wordt de Predict
methode in het .consumption.cs-bestand aangeroepen om voorspellingen te doen met behulp van de invoergegevens die u hebt opgegeven.
Projectsjablonen
Net als de trainings- en verbruikscode die automatisch wordt gegenereerd tijdens het trainingsproces, biedt Model Builder de volgende sjablonen voor het automatisch genereren van nieuwe .NET-toepassingen om uw model te gebruiken.
Consoletoepassing
De consoletoepassingssjabloon is een C# .NET-toepassing die uw model gebruikt om voorspellingen te doen. Het bevat de volgende bestanden:
- Program.cs: het toegangspunt van uw toepassing. Net als bij het codefragment maakt dit bestand een exemplaar van de invoer van uw model, gebruikt u de
Predict
methode in het .consumption.cs-bestand en wordt het resultaat weergegeven in de console. - <MODEL-NAME.mbconfig>: het .mbconfig-bestand voor uw model en gegenereerde trainings- en verbruikscode. Deze bestanden worden gekopieerd uit het klassebibliotheekproject waar u het machine learning-project oorspronkelijk hebt toegevoegd.
Web-API
De web-API-sjabloon is een ASP.NET Core-project dat is gebouwd via het ASP.NET Minimale API-toepassingsmodel om het hosten van uw model als een webservice te vereenvoudigen. Web-API's bieden u de flexibiliteit om voorspellingen te doen met uw model via HTTP-webaanvragen van verschillende clients, zoals desktop-, web- en mobiele toepassingen.
De web-API-sjabloon bevat de volgende bestanden:
Program.cs: het toegangspunt van uw toepassing. In dit bestand configureert uw toepassing de
PredictionEnginePool
service met behulp van afhankelijkheidsinjectie, definieert één/predict
eindpunt en start uw toepassing om te luisteren naar binnenkomende HTTP-aanvragen.Als onderdeel van de
predict
eindpuntdefinitie wordt ook een handler gedefinieerd. De handler gebruikt dePredictionEnginePool
service om voorspellingen te doen voor binnenkomende JSON-aanvragen die uw modelinvoergegevens bevatten. De handler retourneert vervolgens de resultaten van deze voorspellingen terug naar de client.<MODEL-NAME.mbconfig>: het .mbconfig-bestand voor uw model en gegenereerde trainings- en verbruikscode. Deze bestanden worden gekopieerd uit het klassebibliotheekproject waar u het machine learning-project oorspronkelijk hebt toegevoegd.
Belangrijk
Het web-API-project gebruikt de Predict
methode niet in het bestand .consumption.cs . In plaats daarvan wordt het geregistreerd PredictionEnginePool
als een service met behulp van afhankelijkheidsinjectie. PredictionEngine
is niet thread-safe. U moet ook overal een exemplaar maken dat nodig is in uw toepassing. Naarmate uw toepassing groeit, kan dit proces onbeheerbaar worden.
Gebruik voor betere prestaties en threadveiligheid een combinatie van afhankelijkheidsinjectie en de PredictionEnginePool
service, waarmee een ObjectPool
van PredictionEngine
de objecten wordt gemaakt voor gebruik in uw toepassing.
Zie Afhankelijkheidsinjectie in ASP.NET Core voor meer informatie over afhankelijkheidsinjectie.
In de volgende les gebruikt u het model dat u hebt getraind om machinefouten in een .NET-consoletoepassing te voorspellen.