ImageClassificationTrainer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Pro IEstimator<TTransformer> trénování hluboké neurální sítě (DNN) pro klasifikaci obrázků.
public sealed class ImageClassificationTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Vision.ImageClassificationModelParameters>,Microsoft.ML.Vision.ImageClassificationModelParameters>
type ImageClassificationTrainer = class
inherit TrainerEstimatorBase<MulticlassPredictionTransformer<ImageClassificationModelParameters>, ImageClassificationModelParameters>
Public NotInheritable Class ImageClassificationTrainer
Inherits TrainerEstimatorBase(Of MulticlassPredictionTransformer(Of ImageClassificationModelParameters), ImageClassificationModelParameters)
- Dědičnost
-
TrainerEstimatorBase<MulticlassPredictionTransformer<ImageClassificationModelParameters>,ImageClassificationModelParameters>ImageClassificationTrainer
Poznámky
K vytvoření tohoto trenéra použijte ImageClassification.
Vstupní a výstupní sloupce
Vstupní data sloupce popisku musí být klíčovým typem a sloupec funkce musí být vektorem Byteproměnné velikosti .
Tento trenér vypíše následující sloupce:
| Název výstupního sloupce | Typ sloupce | Description |
|---|---|---|
Score |
Vektor vektoruSingle | Skóre všech tříd. Vyšší hodnota znamená, že větší pravděpodobnost spadá do přidružené třídy. Pokud má prvek i-th největší hodnotu, předpovězený index popisku by byl i.Všimněte si, že i je index založený na nule. |
PredictedLabel |
klíč typ | Index predikovaného popisku. Pokud je hodnota i, skutečný popisek by byl i-th kategorií ve vstupním typu popisku s hodnotou klíče. |
Charakteristiky trenéra
| Úloha strojového učení | Klasifikace s více třídami |
| Vyžaduje se normalizace? | No |
| Vyžaduje se ukládání do mezipaměti? | No |
| Požadovaný NuGet kromě Microsoft.ML | Microsoft.ML.Vision a SciSharp.TensorFlow.Redist / SciSharp.TensorFlow.Redist-Windows-GPU / SciSharp.TensorFlow.Redist-Linux-GPU |
| Exportovatelné do ONNX | No |
Použití rozhraní API založených na TensorFlow
Pokud chcete spustit libovolná rozhraní API založená na TensorFlow ML.Net, musíte nejprve přidat závislost NuGet na knihovně Redist TensorFlow. Aktuálně můžete použít dvě verze. Ten, který je zkompilován pro podporu GPU, a ten, který má podporu procesoru, je pouze.
Pouze procesor
TensorFlow založený na procesoru se v současné době podporuje:
- Linux
- MacOS
- Windows
Pokud chcete, aby TensorFlow fungoval pouze na procesoru, stačí vzít závislost NuGetu na SciSharp.TensorFlow.Redist v1.14.0.
Podpora GPU
TensorFlow založený na GPU se v současné době podporuje na:
- Windows
- V současné době TensorFlow nepodporuje spouštění na grafických procesorech pro MacOS, takže ho momentálně nemůžeme podporovat.
Požadavky
Pro seznam kompatibilních GPU musíte mít alespoň jeden CUDA kompatibilní GPU, viz Příručka Nvidia.
Nainstalujte CUDA v10.1 a CUDNN v7.6.4.
Ujistěte se, že jste nainstalovali CUDA v10.1, ne žádnou jinou novější verzi. Po stažení SOUBORU CUDNN v7.6.4 .zip a jeho rozbalení musíte provést následující kroky:
copy <CUDNN_zip_files_path>\cuda\bin\cudnn64_7.dll to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
Vývoj pro C/C++:
Copy <CUDNN_zip_files_path>\cuda\ include\cudnn.h to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
Copy <CUDNN_zip_files_path>\cuda\lib\x64\cudnn.lib to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
Další podrobnosti o cuDNN najdete v průvodci instalací cuDNN.
Usage
Pokud chcete použít TensorFlow s podporou GPU, použijte závislost NuGet na následujícím balíčku v závislosti na vašem operačním systému:
- Windows -> SciSharp.TensorFlow.Redist–Windows-GPU
- Linux –> SciSharp.TensorFlow.Redist–Linux-GPU
K využití GPU pro operace TensorFlow by neměla být nutná žádná úprava kódu.
Troubleshooting
Pokud po přidání nuGetu TensorFlow založeného na GPU nemůžete použít GPU, ujistěte se, že existuje jen závislost na verzi založené na GPU. Pokud máte závislost na obou NuGetech, spustí se místo toho TensorFlow založený na procesoru.
Podrobnosti trénovacího algoritmu
Trénuje hloubkovou neurální síť (DNN) využitím existujícího předem natrénovaného modelu, jako je Resnet50, pro účely klasifikace obrázků. Technika byla inspirovaná kurzem opětovného natrénování klasifikace obrázků v TensorFlowu.
Pole
| Name | Description |
|---|---|
| FeatureColumn |
Sloupec funkcí, který trenér očekává. (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
Sloupec popisku, který trenér očekává. Může to být |
| WeightColumn |
Váhový sloupec, který trenér očekává. Může být |
Vlastnosti
| Name | Description |
|---|---|
| Info |
Pomocné informace o trenéru z hlediska jeho schopností a požadavků. |
Metody
| Name | Description |
|---|---|
| Finalize() |
Pro IEstimator<TTransformer> trénování hluboké neurální sítě (DNN) pro klasifikaci obrázků. |
| Fit(IDataView, IDataView) |
Trénuje ImageClassificationTrainer pomocí trénovacích i ověřovacích dat, vrátí hodnotu ImageClassificationModelParameters. |
| Fit(IDataView) |
Vlaky a vrací .ITransformer (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
Pro IEstimator<TTransformer> trénování hluboké neurální sítě (DNN) pro klasifikaci obrázků. (Zděděno od TrainerEstimatorBase<TTransformer,TModel>) |
Metody rozšíření
| Name | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Připojte kontrolní bod ukládání do mezipaměti do řetězu odhadce. Tím zajistíte, aby podřízené estimátory byly natré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 objekt obtékání, který jednou zavolá delegáta Fit(IDataView) . Často je důležité, aby estimátor vrátil informace o tom, co bylo vhodné, což je důvod, proč Fit(IDataView) metoda vrací konkrétní typ objekt, spíše než 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ěz odhadců prostřednictvím IEstimator<TTransformer> místa, kde odhadovač, EstimatorChain<TLastTransformer> pro který chceme získat transformátor, je někde v tomto řetězu. Pro tento scénář můžeme prostřednictvím této metody připojit delegáta, který bude volána po zavolání fit. |