Trenowanie modelu TensorFlow klasyfikacji obrazów przy użyciu rozszerzenia usługi Azure Machine Learning Visual Studio Code (wersja zapoznawcza)

DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure w wersji 2 (bieżąca)

Dowiedz się, jak wytrenować model klasyfikacji obrazów w celu rozpoznawania ręcznie napisanych liczb przy użyciu biblioteki TensorFlow i rozszerzenia usługi Azure Machine Learning Visual Studio Code.

W tym samouczku zapoznasz się z następującymi zadaniami:

  • Zrozumienie kodu
  • Tworzenie obszaru roboczego
  • Tworzenie klastra procesora GPU na potrzeby trenowania
  • Szkolenie modelu

Wymagania wstępne

Zrozumienie kodu

Kod w tym samouczku używa biblioteki TensorFlow do trenowania modelu uczenia maszynowego klasyfikacji obrazów, który kategoryzuje cyfry odręczne z zakresu od 0 do 9. Robi to, tworząc sieć neuronową, która przyjmuje wartości pikseli 28 pikseli x 28 pikseli jako dane wejściowe i generuje listę 10 prawdopodobieństwa, po jednym dla każdej z klasyfikowanych cyfr. Poniżej przedstawiono przykładowe dane.

Cyfry MNIST

Tworzenie obszaru roboczego

Pierwszą rzeczą, którą należy wykonać, aby utworzyć aplikację w usłudze Azure Machine Learning, jest utworzenie obszaru roboczego. Obszar roboczy zawiera zasoby do trenowania modeli, a także samych wytrenowanych modeli. Aby uzyskać więcej informacji, zobacz co to jest obszar roboczy.

  1. Otwórz katalog azureml-examples/cli/jobs/single-step/tensorflow/mnist z repozytorium opartego na społeczności w Visual Studio Code.

  2. Na pasku działań Visual Studio Code wybierz ikonę platformy Azure, aby otworzyć widok usługi Azure Machine Learning.

  3. W widoku Azure Machine Learning kliknij prawym przyciskiem myszy węzeł subskrypcji i wybierz pozycję Utwórz obszar roboczy.

    Tworzenie obszaru roboczego

  4. Zostanie wyświetlony plik specyfikacji. Skonfiguruj plik specyfikacji przy użyciu następujących opcji.

    $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
    

    Plik specyfikacji tworzy obszar roboczy o nazwie TeamWorkspace w WestUS2 regionie. Pozostałe opcje zdefiniowane w pliku specyfikacji zapewniają przyjazne nazewnictwo, opisy i tagi dla obszaru roboczego.

  5. Kliknij prawym przyciskiem myszy plik specyfikacji i wybierz pozycję Azure ML: Wykonaj YAML. Tworzenie zasobu używa opcji konfiguracji zdefiniowanych w pliku specyfikacji YAML i przesyła zadanie przy użyciu interfejsu wiersza polecenia (wersja 2). Na tym etapie na platformie Azure jest wykonywane żądanie utworzenia nowego obszaru roboczego i zasobów zależnych na twoim koncie. Po kilku minutach nowy obszar roboczy pojawi się w węźle subskrypcji.

  6. Ustaw TeamWorkspace jako domyślny obszar roboczy. Dzięki temu zasoby i zadania tworzone w obszarze roboczym są domyślnie tworzone. Wybierz przycisk Ustaw obszar roboczy usługi Azure ML na pasku stanu Visual Studio Code i postępuj zgodnie z monitami, aby ustawić TeamWorkspace domyślny obszar roboczy.

Aby uzyskać więcej informacji na temat obszarów roboczych, zobacz jak zarządzać zasobami w programie VS Code.

Tworzenie klastra procesora GPU na potrzeby trenowania

Docelowy obiekt obliczeniowy to zasób obliczeniowy lub środowisko, w którym są uruchamiane zadania szkoleniowe. Aby uzyskać więcej informacji, zobacz dokumentację obiektów obliczeniowych usługi Azure Machine Learning.

  1. W widoku usługi Azure Machine Learning rozwiń węzeł obszaru roboczego.

  2. Kliknij prawym przyciskiem myszy węzeł Klastry obliczeniowe w węźle obliczeniowym obszaru roboczego, a następnie wybierz pozycję Utwórz środowisko obliczeniowe

    Tworzenie klastra obliczeniowego trenowania

  3. Zostanie wyświetlony plik specyfikacji. Skonfiguruj plik specyfikacji przy użyciu następujących opcji.

    $schema: https://azuremlschemas.azureedge.net/latest/compute.schema.json
    name: gpu-cluster
    type: amlcompute
    size: Standard_NC12
    
    min_instances: 0
    max_instances: 3
    idle_time_before_scale_down: 120
    

    Plik specyfikacji tworzy klaster procesora GPU o nazwie gpu-cluster z co najwyżej 3 Standard_NC12 węzłami maszyny wirtualnej, który automatycznie skaluje w dół do 0 węzłów po 120 sekundach braku aktywności.

    Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych, zobacz Rozmiary maszyn wirtualnych z systemem Linux na platformie Azure.

  4. Kliknij prawym przyciskiem myszy plik specyfikacji i wybierz pozycję Azure ML: Wykonaj YAML.

Po kilku minutach nowy cel obliczeniowy pojawi się w węźle Klastry obliczeniowe > obszaru roboczego.

Trenowanie modelu klasyfikacji obrazów

Podczas procesu trenowania model TensorFlow jest trenowany przez przetwarzanie danych treningowych i wzorców uczenia osadzonych w nim dla każdej z klasyfikowanych cyfr.

Podobnie jak obszary robocze i cele obliczeniowe, zadania szkoleniowe są definiowane przy użyciu szablonów zasobów. W tym przykładzie specyfikacja jest zdefiniowana w pliku job.yml , który wygląda następująco:

$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
compute: azureml:gpu-cluster
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Ten plik specyfikacji przesyła zadanie szkoleniowe o nazwie tensorflow-mnist-example do ostatnio utworzonego gpu-cluster obiektu docelowego komputera, które uruchamia kod w skryscie train.py Python. Używane środowisko jest jednym z wyselekcjonowanych środowisk udostępnianych przez usługę Azure Machine Learning, które zawiera bibliotekę TensorFlow i inne zależności oprogramowania wymagane do uruchomienia skryptu trenowania. Aby uzyskać więcej informacji na temat wyselekcjonowanych środowisk, zobacz Azure Machine Learning wyselekcjonowane środowiska.

Aby przesłać zadanie szkoleniowe:

  1. Otwórz plik job.yml .
  2. Kliknij prawym przyciskiem myszy plik w edytorze tekstów i wybierz pozycję Azure ML: Wykonaj plik YAML.

Na tym etapie żądanie jest wysyłane do platformy Azure w celu uruchomienia eksperymentu na wybranym obiekcie docelowym obliczeniowym w obszarze roboczym. Ten proces trwa kilka minut. Wpływ na czas uruchamiania zadania szkoleniowego ma wpływ kilka czynników, takich jak typ obliczeniowy i rozmiar danych treningowych. Aby śledzić postęp eksperymentu, kliknij prawym przyciskiem myszy bieżący węzeł przebiegu i wybierz polecenie Wyświetl zadanie w Azure Portal.

Po wyświetleniu okna dialogowego z żądaniem otwarcia zewnętrznej witryny internetowej wybierz pozycję Otwórz.

Śledzenie postępu eksperymentu

Po zakończeniu trenowania modelu etykieta stanu obok węzła uruchamiania zostanie zaktualizowana do wartości "Ukończono".

Następne kroki

W tym samouczku zapoznasz się z następującymi zadaniami:

  • Zrozumienie kodu
  • Tworzenie obszaru roboczego
  • Tworzenie klastra procesora GPU na potrzeby trenowania
  • Szkolenie modelu

Aby zapoznać się z kolejnymi krokami, zobacz: