Využívání modelů strojového učení

Dokončeno

Po vytrénování modelu strojového učení je čas ho využívat, abyste mohli vytvářet předpovědi.

ML.NET modely jsou serializovány a uloženy do souboru. Soubor modelu můžete načíst do libovolné aplikace .NET a použít ho k předpovědím prostřednictvím rozhraní API ML.NET.

Tvůrce modelů usnadňuje využívání modelu v existujících aplikacích pomocí fragmentů kódu a nových aplikací pomocí šablon.

Fragment kódu

Pokud máte existující aplikaci, ve které chcete model použít k předpovědím, fragment kódu proces zjednodušuje. Použití fragmentu kódu v aplikaci:

  1. Přidejte odkaz na knihovnu tříd, která obsahuje váš model z projektu, ve kterém budete model používat.
  2. Přidejte do aplikace fragment kódu.

Fragment kódu vytvoří instanci vstupu modelu. Potom zavolá metodu Predict v souboru .consumption.cs , aby se předpovědi provedly pomocí vstupních dat, která jste zadali.

Šablony projektů

Stejně jako kód trénování a spotřeby, který se automaticky vygeneruje během trénovacího procesu, poskytuje Tvůrce modelů následující šablony pro automatické generování nových aplikací .NET pro využívání modelu.

Konzolová aplikace

Šablona konzolové aplikace je aplikace C# .NET, která používá váš model k vytváření předpovědí. Obsahuje následující soubory:

  • Program.cs: Vstupní bod aplikace. Podobně jako fragment kódu tento soubor vytvoří instanci vstupu modelu, použije Predict metodu v souboru .consumption.cs a zobrazí výsledek v konzole.
  • <MODEL-NAME.mbconfig>: Soubor .mbconfig pro váš model a vygenerovaný kód trénování a spotřeby. Tyto soubory se zkopírují z projektu knihovny tříd, do kterého jste původně přidali projekt strojového učení.

Webové rozhraní API

Šablona webového rozhraní API je projekt ASP.NET Core vytvořený prostřednictvím ASP.NET minimálního aplikačního modelu rozhraní API, který zjednodušuje hostování modelu jako webové služby. Webová rozhraní API poskytují flexibilitu vytváření předpovědí s modelem prostřednictvím webových požadavků HTTP z různých klientů, jako jsou desktopové, webové a mobilní aplikace.

Šablona webového rozhraní API obsahuje následující soubory:

  • Program.cs: Vstupní bod aplikace. V tomto souboru vaše aplikace nakonfiguruje PredictionEnginePool službu pomocí injektáže závislostí, definuje jeden /predict koncový bod a spustí aplikaci tak, aby naslouchala příchozím požadavkům HTTP.

    V rámci definice koncového predict bodu je také definována obslužná rutina. Obslužná rutina používá PredictionEnginePool službu k předpovědím příchozích požadavků JSON, které obsahují vstupní data modelu. Obslužná rutina pak vrátí výsledky těchto předpovědí zpět klientovi.

  • <MODEL-NAME.mbconfig>: Soubor .mbconfig pro váš model a vygenerovaný kód trénování a spotřeby. Tyto soubory se zkopírují z projektu knihovny tříd, do kterého jste původně přidali projekt strojového učení.

Důležité

Projekt webového rozhraní API nepoužívá metodu Predict v souboru .consumption.cs . Místo toho se zaregistruje PredictionEnginePool jako služba pomocí injektáže závislostí. PredictionEngine není bezpečný pro přístup z více vláken. Musíte také vytvořit instanci všude, kde je v aplikaci potřeba. S rostoucím růstem aplikace se tento proces může stát nespravovatelným.

Pro zvýšení výkonu a bezpečnosti vláken použijte kombinaci injektáže závislostí a PredictionEnginePool služby, která vytvoří ObjectPool PredictionEngine objekty pro použití v celé aplikaci.

Další informace o injektáži závislostí najdete v tématu Injektáž závislostí v ASP.NET Core.

V další lekci použijete model, který jste natrénovali k předpovídání selhání počítačů v konzolové aplikaci .NET.