Share via


TensorFlowEstimator Třída

Definice

Používá se TensorFlowTransformer v následujících dvou scénářích.

  1. Bodování pomocí předem natrénovaného modelu TensorFlow : V tomto režimu transformace extrahuje hodnoty skrytých vrstev z předem natrénovaného modelu Tensorflow a používá výstupy jako funkce v kanálu ML.Net.
  2. Přetrénování modelu TensorFlow : V tomto režimu transformace přetrénuje model TensorFlow pomocí uživatelských dat předávaných prostřednictvím kanálu ML.Net. Jakmile je model vytrénovaný, můžete ho použít jako funkce pro vyhodnocování.
public sealed class TensorFlowEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TensorFlowTransformer>
type TensorFlowEstimator = class
    interface IEstimator<TensorFlowTransformer>
Public NotInheritable Class TensorFlowEstimator
Implements IEstimator(Of TensorFlowTransformer)
Dědičnost
TensorFlowEstimator
Implementuje

Poznámky

TensorFlowTransform extrahuje zadané výstupy pomocí předem natrénovaného modelu Tensorflow . Volitelně může model TensorFlow dále přetrénovat na uživatelských datech, aby upravil parametry modelu na uživatelských datech (také označované jako "Transfer Learning").

Pro bodování transformace přebírá jako vstupy předem natrénovaný model Tensorflow, názvy vstupních uzlů a názvy výstupních uzlů, jejichž hodnoty chceme extrahovat. Pro opětovné trénování transformace také vyžaduje trénování souvisejících parametrů, jako jsou názvy operace optimalizace v grafu TensorFlow, název operace četnosti učení v grafu a jeho hodnota, název operací v grafu pro výpočet ztráty a metriky výkonu atd.

Tato transformace vyžaduje instalaci nugetu Microsoft.ML.TensorFlow . TensorFlowTransform má následující předpoklady týkající se vstupu, výstupu, zpracování dat a opětovného natrénování.

  1. Pro vstupní model aktuálně TensorFlowTransform podporuje formát ukotveného modelu i formát SavedModel . Přetrénování modelu je však možné pouze pro formát SavedModel . Formát kontrolního bodu se v současné době nepodporuje pro bodování ani pro opětovné natrénování kvůli nedostatku podpory rozhraní TensorFlow C-API pro načtení.
  2. Transformace podporuje vyhodnocování pouze jednoho příkladu najednou. Přetrénování však lze provádět v dávkách.
  3. Pokročilé scénáře výuky přenosu nebo jemného ladění (například přidání dalších vrstev do sítě, změna tvaru vstupů, ukotvení vrstev, které není potřeba aktualizovat během procesu přetrénování atd.), nejsou v současné době možné kvůli nedostatku podpory pro manipulaci se sítí nebo grafy uvnitř modelu pomocí rozhraní TensorFlow C-API.
  4. Název vstupních sloupců by se měl shodovat s názvem vstupů v modelu TensorFlow.
  5. Název každého výstupního sloupce by měl odpovídat jedné z operací v grafu TensorFlow.
  6. V současné době jsou pro vstup a výstup přijatelné datové typy dvojitého typu, float, long, int, short, sbyte, ulong, uint, ushort, byte a bool.
  7. Při úspěchu transformace zavede nový sloupec odpovídající IDataView každému zadanému výstupnímu sloupci.

Vstupy a výstupy modelu TensorFlow lze získat pomocí GetModelSchema() nástrojů nebo summarize_graph .

Metody

Fit(IDataView)

Vlaky a vrací hodnotu TensorFlowTransformer.

GetOutputSchema(SchemaShape)

SchemaShape Vrátí schéma, které bude vytvořen transformátorem. Používá se pro šíření a ověřování schématu v kanálu.

Metody rozšíření

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Připojte k řetězci estimátoru kontrolní bod ukládání do mezipaměti. Tím zajistíte, aby podřízené estimátory byly vytrénovány proti datům uloženým v mezipaměti. Před průchodem více dat je užitečné mít kontrolní bod ukládání do mezipaměti.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Vzhledem k estimátoru vraťte zalamovací objekt, který zavolá delegáta jednou Fit(IDataView) . Často je důležité, aby odhadovač vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétně typ objekt, nikoli jen obecné ITransformer. Ve stejnou dobu se však často vytvářejí do kanálů s mnoha objekty, takže možná budeme muset vytvořit řetězec estimátorů, kde EstimatorChain<TLastTransformer> je odhadovač, IEstimator<TTransformer> pro který chceme získat transformátor, zakopán někde v tomto řetězci. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po zavolání fit.

Platí pro