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번째 요소의 값이 가장 큰 경우 예측된 레이블 인덱스는 i가 됩니다. i는 0부터 시작하는 인덱스입니다. |
PredictedLabel |
키 형식 | 예측된 레이블의 인덱스입니다. 값이 i라면 실제 레이블은 키 값 입력 레이블 형식에서 i번째 범주입니다. |
트레이너 특성
기계 학습 작업 | 다중 클래스 분류 |
정규화가 필요한가요? | 아니요 |
캐싱이 필요한가요? | 아니요 |
Microsoft.ML 외에도 필요한 NuGet | Microsoft.ML.Vision and SciSharp.TensorFlow.Redist / SciSharp.TensorFlow.Redist-Windows-GPU / SciSharp.TensorFlow.Redist-Linux-GPU |
ONNX로 내보낼 수 있습니다. | 아니요 |
TensorFlow 기반 API 사용
TensorFlow 기반 ML.Net API를 실행하려면 먼저 TensorFlow 재배포 라이브러리에 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 설치 가이드를 참조하세요.
사용량
GPU 지원과 함께 TensorFlow를 사용하려면 OS에 따라 다음 패키지에 NuGet 종속성을 사용합니다.
- Windows -> SciSharp.TensorFlow.Redist-Windows-GPU
- Linux -> SciSharp.TensorFlow.Redist-Linux-GPU
TensorFlow 작업에 GPU를 활용하기 위해 코드를 수정할 필요가 없습니다.
문제 해결
GPU 기반 TensorFlow NuGet을 추가한 후 GPU를 사용할 수 없는 경우 GPU 기반 버전에 대한 종속성만 있는지 확인합니다. 두 NuGets에 대한 종속성이 있는 경우 CPU 기반 TensorFlow가 대신 실행됩니다.
학습 알고리즘 세부 정보
이미지를 분류하기 위해 Resnet50과 같이 미리 학습된 기존 모델을 활용하여 DNN(심층 신경망)을 학습시킵니다. 이 기술은 TensorFlow의 재학습 이미지 분류 자습서에서 영감을 줍니다.
필드
FeatureColumn |
트레이너가 기대하는 기능 열입니다. (다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
트레이너가 기대하는 레이블 열입니다. Can be |
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> 추정기 체인을 빌드해야 할 수도 있습니다. 이 시나리오에서는 fit이 호출되면 호출되는 대리자를 이 메서드를 통해 연결할 수 있습니다. |