ImageClassificationTrainer 類別

定義

用來 IEstimator<TTransformer> 定型深度神經網路的 (DNN) 來分類影像。

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)
繼承

備註

若要建立此定型器,請使用 ImageClassification

輸入和輸出資料行

輸入標籤資料行資料必須是 索引鍵 類型,而且特徵資料行必須是 的 Byte 可變大小向量。

此定型器會輸出下列資料行:

輸出資料行名稱 資料行類型 描述
Score 向量Single 所有類別的分數。較高的值表示進入相關聯類別的機率較高。 如果 i-th 元素具有最大值,則預測的標籤索引會是 i.請注意,i 是以零起始的索引。
PredictedLabel 索引鍵 類型 預測標籤的索引。 若其值是 i,則實際標籤可能會是索引鍵/值輸入標籤類型中的第 i 個類別。

定型器特性

機器學習工作 多元分類
是否需要正規化?
是否需要快取?
除了 Microsoft.ML 之外,還需要 NuGet Microsoft.ML.Vision 和 SciSharp.TensorFlow.Redist / SciSharp.TensorFlow.Redist-Windows-GPU / SciSharp.TensorFlow.Redist-Linux-GPU
可匯出至 ONNX

使用 TensorFlow 型 API

若要執行任何 TensorFlow ML.Net API,您必須先在 TensorFlow Redist 程式庫上新增 NuGet 相依性。 您目前可以使用兩個版本。 一個是針對 GPU 支援進行編譯,另一個只支援 CPU。

僅限 CPU

目前支援以 CPU 為基礎的 TensorFlow:

  • Linux
  • MacOS
  • Windows

若要讓 TensorFlow 只在 CPU 上運作,只需要在 SciSharp.TensorFlow.Redist v1.14.0 上取得 NuGet 相依性

GPU 支援

目前支援以 GPU 為基礎的 TensorFlow:

  • Windows
  • Linux 自現在起,TensorFlow 不支援在 MacOS 的 GPU 上執行,因此我們目前不支援此功能。

先決條件

您必須至少有一個 CUDA 相容的 GPU,才能取得相容的 GPU 清單,請參閱 Nvidia 的指南

安裝 CUDA v10.1CUDNN v7.6.4

請確定您安裝 CUDA v10.1,而不是任何其他較新版本。 下載 CUDNN v7.6.4 .zip 檔案並解壓縮之後,您需要執行下列步驟:

copy <CUDNN_zip_files_path>\cuda\bin\cudnn64_7.dll to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin

針對 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

如需 cuDNN 的進一步詳細資料,您可以遵循 cuDNN 安裝指南

使用方式

若要使用 TensorFlow 搭配 GPU 支援,請根據您的作業系統,對下列套件採用 NuGet 相依性:

  • Windows - > SciSharp.TensorFlow.Redist-Windows-GPU
  • Linux - > SciSharp.TensorFlow.Redist-Linux-GPU

不需要修改任何程式碼,即可利用 GPU 進行 TensorFlow 作業。

疑難排解

如果您在新增 GPU 型 TensorFlow NuGet 之後無法使用 GPU,請確定只相依于 GPU 型版本。 如果您相依于這兩個 NuGet,則會改為執行以 CPU 為基礎的 TensorFlow。

定型演算法詳細資料

利用 Resnet50 等現有預先定型的模型來定型深度神經網路 (DNN) ,以便分類影像。 這項技術受到TensorFlow 重新定型影像分類教學課程的啟發

欄位

FeatureColumn

定型器預期的功能資料行。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

定型器預期的標籤資料行。 可以是 null ,表示標籤不會用於定型。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

定型器預期的加權資料行。 可以是 null ,表示加權不會用於定型。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)

屬性

Info

根據定型人員的功能和需求,輔助資訊。

方法

Finalize()

用來 IEstimator<TTransformer> 定型深度神經網路的 (DNN) 來分類影像。

Fit(IDataView)

定型並傳 ITransformer 回 。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
Fit(IDataView, IDataView)

ImageClassificationTrainer使用定型和驗證資料來定型 , 會 ImageClassificationModelParameters 傳回 。

GetOutputSchema(SchemaShape)

用來 IEstimator<TTransformer> 定型深度神經網路的 (DNN) 來分類影像。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)

擴充方法

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

將「快取檢查點」附加至估算器鏈結。 這可確保下游估算器會針對快取的資料定型。 在接受多個資料通過的定型器之前,先有快取檢查點會很有説明。

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

指定估算器時,傳回包裝物件,一旦 Fit(IDataView) 呼叫委派即可。 估算器通常務必傳回符合專案的相關資訊,這就是 Fit(IDataView) 方法傳回特定型別物件的原因,而不是只傳回一般 ITransformer 。 不過,同時, IEstimator<TTransformer> 通常會形成具有許多物件的管線,因此我們可能需要透過建置估算器的鏈結,而我們想要取得轉換器的估算器 EstimatorChain<TLastTransformer> 會在此鏈結的某處放置。 在該案例中,我們可以透過這個方法附加呼叫一次會呼叫的委派。

適用於