자습서: Azure Machine Learning Visual Studio Code 확장(미리 보기)을 사용하여 이미지 분류 TensorFlow 모델 학습

적용 대상:Azure CLI ml 확장 v2(현재)

TensorFlow 및 Azure Machine Learning Visual Studio Code 확장을 사용하여 필기 숫자를 인식하도록 이미지 분류 모델을 학습시키는 방법에 대해 알아봅니다.

Important

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.

자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

이 자습서에서는 다음 작업에 대해 알아봅니다.

  • 코드 이해
  • 작업 영역 만들기
  • 모델 학습

필수 조건

코드 이해

이 자습서의 코드는 TensorFlow를 사용하여 0-9의 필기 숫자를 분류하는 이미지 분류 기계 학습 모델을 학습시킵니다. 이를 위해 입력으로 28px x 28px 이미지의 픽셀 값을 사용하고, 분류되는 각 숫자에 대해 하나씩 10개 확률의 목록을 출력하는 신경망을 만듭니다. 이는 데이터가 어떻게 보이는지에 대한 샘플입니다.

MNIST Digits

작업 영역 만들기

Azure Machine Learning에서 애플리케이션을 빌드하려면 가장 먼저 작업 영역을 만들어야 합니다. 작업 영역에는 모델 학습을 위한 리소스와 학습된 모델 자체가 포함되어 있습니다. 자세한 내용은 작업 영역이란?을 참조하세요.

  1. Visual Studio Code의 커뮤니티 기반 리포지토리에서 azureml-examples/cli/jobs/single-step/tensorflow/mnist 디렉터리를 엽니다.

  2. Visual Studio Code 작업 막대에서 Azure 아이콘을 선택하여 Azure Machine Learning 보기를 엽니다.

  3. Azure Machine Learning 보기에서 구독 노드를 마우스 오른쪽 단추로 클릭하고 작업 영역 만들기를 선택합니다.

    Create workspace

  4. 사양 파일이 나타납니다. 다음 옵션을 사용하여 사양 파일을 구성합니다.

    $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
    name: TeamWorkspace
    location: WestUS2
    display_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    사양 파일은 WestUS2 영역에 TeamWorkspace라는 작업 영역을 만듭니다. 사양 파일에 정의된 나머지 옵션은 작업 영역에 대한 식별 이름 지정, 설명 및 태그를 제공합니다.

  5. 사양 파일을 마우스 오른쪽 단추로 클릭하고 AzureML: YAML 실행을 선택합니다. 리소스 만들기는 YAML 사양 파일에 정의된 구성 옵션을 사용하고 CLI(v2)를 사용하여 작업을 제출합니다. 이 시점에서 새 작업 영역 및 종속 리소스를 계정에 만들도록 요구하는 요청을 Azure에 보냅니다. 몇 분 후에 새 작업 영역이 구독 노드에 표시됩니다.

  6. TeamWorkspace를 기본 작업 영역으로 설정합니다. 이렇게 하면 기본적으로 작업 영역에 사용자가 만든 리소스와 작업이 배치됩니다. Visual Studio Code 상태 표시줄에서 Azure Machine Learning 작업 영역 설정 단추를 선택하고 프롬프트에 따라 TeamWorkspace를 기본 작업 영역으로 설정합니다.

작업 영역에 대한 자세한 내용은 VS Code에서 리소스를 관리하는 방법을 참조하세요.

모델 학습

TensorFlow 모델은 학습 프로세스 중에 분류되는 각 숫자에 대한 학습 데이터와 이에 포함된 학습 패턴을 처리하여 학습됩니다.

작업 영역 및 컴퓨팅 대상과 마찬가지로 학습 작업은 리소스 템플릿을 사용하여 정의됩니다. 이 샘플의 경우 사양은 다음과 같은 job.yml 파일에 정의되어 있습니다.

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
resources:
   instance_type: Standard_NC12
   instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

이 사양 파일은 train.py Python 스크립트에서 코드를 실행하는 최근에 만든 gpu-cluster 컴퓨터 대상에 tensorflow-mnist-example이라는 학습 작업을 제출합니다. 사용되는 환경은 TensorFlow 및 학습 스크립트를 실행하는 데 필요한 기타 소프트웨어 종속성이 포함된 Azure Machine Learning에서 제공하는 큐레이팅된 환경 중 하나입니다. 큐레이팅된 환경에 대한 자세한 내용은 Azure Machine Learning 큐레이팅된 환경을 참조하세요.

학습 작업 제출하려면 다음을 수행합니다.

  1. job.yml 파일을 엽니다.
  2. 텍스트 편집기에서 파일을 마우스 오른쪽 단추로 클릭하고 : YAML 실행을 선택합니다.

이 시점에서 선택한 작업 영역의 컴퓨팅 대상에서 실험을 실행하도록 요구하는 요청을 Azure에 보냅니다. 이 프로세스는 몇 분 정도 걸립니다. 학습 작업을 실행하는 시간은 컴퓨팅 형식 및 학습 데이터 크기와 같은 몇 가지 요인의 영향을 받습니다. 실험 진행률을 추적하려면 마우스 오른쪽 단추로 현재 실행 노드를 클릭하고 Azure Portal에서 작업 보기를 선택합니다.

외부 웹 사이트를 열도록 요청하는 대화 상자가 표시되면 열기를 선택합니다.

Track experiment progress

모델 학습이 완료되면 실행 노드 옆의 상태 레이블이 "완료됨"으로 업데이트됩니다.

다음 단계