언어

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여야 합니다.

이 트레이너는 다음 열을 출력합니다.

출력 열 이름 열 형식 Description
Score 의 벡터Single 모든 클래스의 점수입니다. 값이 높을수록 연결된 클래스에 속할 확률이 높아집니다. i-th 요소에 가장 큰 값이 있는 경우 예측된 레이블 인덱스는 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는 현재 다음에서 지원됩니다.

  • 리눅스
  • 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를 활용하기 위해 코드를 수정할 필요가 없습니다.

Troubleshooting

GPU 기반 TensorFlow NuGet을 추가한 후 GPU를 사용할 수 없는 경우 GPU 기반 버전에 대한 종속성만 있는지 확인합니다. 두 NuGets에 대한 종속성이 있는 경우 CPU 기반 TensorFlow가 대신 실행됩니다.

학습 알고리즘 세부 정보

이미지를 분류하기 위해 Resnet50과 같이 미리 학습된 기존 모델을 활용하여 DNN(심층 신경망)을 학습시킵니다. 이 기술은 TensorFlow의 이미지 분류 재학습 자습서에서 영감을 얻었습니다.

필드

Name Description
FeatureColumn

트레이너가 기대하는 기능 열입니다.

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

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

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

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

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

속성

Name Description
Info

해당 기능 및 요구 사항 측면에서 트레이너에 대한 보조 정보입니다.

메서드

Name Description
Finalize()

IEstimator<TTransformer> 이미지를 분류하는 DNN(심층 신경망)을 학습하기 위한 것입니다.

Fit(IDataView, IDataView)

ImageClassificationTrainer 학습 데이터와 유효성 검사 데이터를 모두 사용하여 학습하고 ImageClassificationModelParameters.

Fit(IDataView)

를 학습하고 반환합니다 ITransformer.

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

IEstimator<TTransformer> 이미지를 분류하는 DNN(심층 신경망)을 학습하기 위한 것입니다.

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

확장명 메서드

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

추정기 체인에 '캐싱 검사점'을 추가합니다. 이렇게 하면 다운스트림 추정기가 캐시된 데이터에 대해 학습됩니다. 여러 데이터를 전달하는 트레이너 앞에 캐싱 검사점을 두는 것이 유용합니다.

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

추정기가 지정된 경우 한 번 Fit(IDataView) 호출된 대리자를 호출하는 래핑 개체를 반환합니다. 예측 도구에서 적합한 항목에 대한 정보를 반환하는 것이 중요한 경우가 많으므로 메서드는 Fit(IDataView) 일반 ITransformer개체가 아니라 구체적으로 형식화된 개체를 반환합니다. 그러나 동시에 IEstimator<TTransformer> 개체가 많은 파이프라인으로 형성되는 경우가 많으므로 변압기를 구하려는 추정기가 이 체인의 어딘가에 묻혀 있는 위치를 통해 EstimatorChain<TLastTransformer> 추정기 체인을 빌드해야 할 수 있습니다. 이 시나리오에서는 fit이 호출되면 호출될 대리자를 이 메서드를 통해 연결할 수 있습니다.

적용 대상