다음을 통해 공유


ML.NET을 사용하여 모델 학습

이 자습서의 이전 단계에서는 고유 Windows Machine Learning 모델 및 앱을 만들기 위한 사전 요구 사항을 설명하고 사용할 이미지 세트를 다운로드했습니다. 이 단계에서는 ML.NET Model Builder를 사용하여 이미지 세트를 이미지 분류 모델로 전환합니다.

프로젝트 만들기

  1. Visual Studio를 열고, “새 프로젝트 만들기”를 선택합니다.

Create a new project for the Model Builder

  1. 검색 창에 .NET을 입력하고 언어를 C#으로, 콘솔을 해당 플랫폼으로 선택한 후 C# 콘솔 앱(.NET Core) 프로젝트 템플릿을 선택합니다.

Create a new .NET project

  1. 구성 창에서 다음을 수행합니다.
  • 프로젝트 이름을 지정합니다. 여기서는 MLNETTraining으로 지정되었습니다.
  • 프로젝트 위치를 선택합니다.
  • Place solution and project in the same directory가 선택 취소되었는지 확인합니다.
  • create를 눌러 프로젝트를 만듭니다.

Configure your new project

Model Builder 설정

이제 프로젝트에 Model Builder를 추가합니다.

  1. 솔루션 탐색기에서 MLNETTraining 프로젝트를 마우스 오른쪽 단추로 클릭하고 Add > Machine Learning을 선택합니다.

Add machine learning to your project

이렇게 하면 Visual Studio에서 새로 도킹된 도구 창으로 ML.NET Model Builder가 열립니다. Model Builder는 기계 학습 모델 빌드 프로세스를 안내합니다.

List of model builder scenarios

첫 번째 단계는 관련 시나리오를 선택하는 것입니다. 모든 시나리오에서 ONNX 형식이 지원되지는 않습니다.

학습 환경이 Azure 클라우드면 생성된 모델이 ONNX 형식이고, 변환 없이 Windows ML 앱에 쉽게 사용될 수 있습니다. 하지만 컴퓨터에서 기계 학습 모델을 로컬로 학습시킬 경우에는 ML.NET 형식으로 모델이 생성됩니다.

  • 개체 감지를 제외한 모든 시나리오에서 로컬 CPU 교육이 지원됩니다.
  • 로컬 GPU 학습은 이미지 분류에 대해 지원됩니다.
  • Azure 학습은 이미지 분류 및 개체 감지에 대해 지원됩니다.

이 자습서에서는 Azure 학습 환경에서 이미지 분류 모델을 학습시킵니다. 출력 모델은 ONNX 형식입니다. 학습을 완료하려면 Azure 계정이 필요합니다.

  1. 이미지 분류 시나리오를 선택합니다.

  2. 작업 영역 설정을 선택하여 Azure 학습 환경을 설정합니다.

Set up your Azure workspace

오른쪽 위 모서리에서 Azure 구독과 연결된 계정에 로그인합니다. 아래 메뉴에서 다음을 수행합니다.

  • 관련 구독을 선택합니다.
  • 새 Machine Learning 작업 영역을 선택하고 만듭니다.
  • 새 컴퓨팅 리소스를 선택하거나 만듭니다.
  • 작업 영역에 이름을 지정합니다(ImageClassificationMLNET).

Configure your Azure workspace

Important

Model Builder에서 Machine Learning 작업 영역을 만들 수 없으면 다음 단계에 따라 Azure Portal에서 수동으로 작업 영역을 만듭니다. 그렇지 않으면 4단계로 건너뛸 수 있습니다.

Azure 계정에서 리소스 만들기를 선택합니다.

Available Azure resources

검색 창에서 Machine Learning을 찾습니다.

Search for Machine Learning in the Azure resource list

만들기를 눌러서 새 Machine Learning 작업 영역을 만듭니다.

The Azure Machine Learning resource

새 작업 영역을 만들려면 구독 이름을 제공하고, 새 리소스 그룹을 선택하거나 만들고, 작업 영역에 이름을 지정하고, 지역, 스토리지 계정 등의 모든 필수 매개변수를 정의해야 합니다.

Set up your Azure ML workspace

작업 영역을 설정하고 ML.NET에서 새 학습 환경을 만들었으면 다음 단계로 이동할 수 있습니다.

The ML.NET training environment

Machine Learning Services 배포가 완료될 때까지 기다립니다.

다음 단계는 Model Builder에 데이터를 추가하는 단계입니다.

  1. 이미지 데이터 세트의 위치로 이동하고 관련 음식 범주가 있는 학습 폴더를 선택합니다. 이 자습서에서는 후식, 수프 및 과일을 인식하도록 모델을 학습시키므로, 데이터 세트 폴더에 이러한 범주만 필요합니다.

Add data to your ML model

이제 학습 파트로 이동할 준비가 되었습니다!

모델 학습

Model Builder는 다양한 알고리즘 및 설정을 사용해서 여러 모델을 평가하여 최적 성능 모델을 제공합니다.

  1. 계속해서 학습 시작을 선택하여 학습 프로세스를 시작합니다. ML.Net Model Builder가 Azure에 데이터 업로드를 시작하고, 작업 영역을 준비한 후 학습 프로세스를 시작합니다.

Train your Machine Learning model

학습이 완료되면 학습 결과 요약이 표시됩니다.

Successful model training

최상의 정확도 - Model Builder로 찾은 최상의 모델 정확도를 보여줍니다. 더 높은 정확도는 테스트 데이터에서 모델이 더 정확하게 예측된다는 것을 의미합니다. 여기에서 모델은 95.42%의 신뢰도로 올바른 결과를 예측할 수 있습니다.

결과 평가

  1. 다음 단계로 이동하여 학습 결과를 평가합니다.

  2. 데이터 세트의 평가 폴더에서 이미지를 선택하고 예측을 살펴봅니다.

Model evaluation results

솔루션에 모델 추가

ML.NET Model Builder는 기계 학습 모델 및 모델 학습 및 소비를 위한 프로젝트를 모두 자동으로 솔루션에 추가할 수 있습니다.

  1. 학습 프로세스의 소비 부분으로 이동하고 솔루션에 추가를 선택합니다. 그러면 생성된 모델이 솔루션 폴더에 추가됩니다.

Add your model to your solution

솔루션 탐색기에서 ONNX 형식의 bestModel.onnx와 같은 모델을 포함하여 Model Builder에서 생성된 코드 파일이 표시됩니다.

Your model displayed in the solution explorer

Azure 클라우드 환경에서 학습된 모델이므로 ONNX 형식으로 모델이 생성됩니다.

모델 살펴보기

  1. bestModel.onnx를 마우스 오른쪽 단추로 클릭하고 포함하고 있는 폴더 열기를 선택합니다.

  2. Netron 프로그램으로 모델 파일을 엽니다.

  3. input1 노드를 눌러 모델 속성을 엽니다.

Exploring the properties of your model

표시된 것처럼 이 모델은 입력으로 32비트 float tensor(다차원 배열) 개체가 필요하며, Tensor float를 출력으로 반환합니다. 이 방식으로 모델이 빌드되어, 예측된 레이블의 문자열 값이 아니라 3개 숫자의 배열을 반환합니다. 각 숫자는 관련된 음식 종류 레이블을 나타냅니다. Windows ML 앱에서 올바른 예측을 표시하기 위해 이러한 값을 추출해야 합니다.

레이블 1 레이블 2 레이블 3
0 1 2
후식 스프 채소-과일

다음 단계

지금까지 Machine Learning 모델 학습을 수행했으므로 이제 Windows Machine Learning으로 UWP 앱에 이를 배포할 수 있습니다.