다음을 통해 공유


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번째 요소의 값이 가장 큰 경우 예측된 레이블 인덱스는 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.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 설치 가이드를 참조하세요.

사용량

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 null, which indicates that label is not used for training.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

트레이너가 기대하는 체중 열입니다. 가중치가 학습에 사용되지 않음을 나타내는 일 null수 있습니다.

(다음에서 상속됨 TrainerEstimatorBase<TTransformer,TModel>)

속성

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이 호출되면 호출되는 대리자를 이 메서드를 통해 연결할 수 있습니다.

적용 대상