ImageClassificationTrainer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用來 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)
- 繼承
-
TrainerEstimatorBase<MulticlassPredictionTransformer<ImageClassificationModelParameters>,ImageClassificationModelParameters>ImageClassificationTrainer
備註
若要建立此定型器,請使用 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.1 和 CUDNN 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 |
定型器預期的標籤資料行。 可以是 |
WeightColumn |
定型器預期的加權資料行。 可以是 |
屬性
Info |
根據定型人員的功能和需求,輔助資訊。 |
方法
Finalize() |
用來 IEstimator<TTransformer> 定型深度神經網路的 (DNN) 來分類影像。 |
Fit(IDataView, IDataView) |
ImageClassificationTrainer使用定型和驗證資料來定型 , 會 ImageClassificationModelParameters 傳回 。 |
Fit(IDataView) |
定型並傳 ITransformer 回 。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
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> 會在此鏈結的某處放置。 在該案例中,我們可以透過這個方法附加呼叫一次會呼叫的委派。 |