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

Dowiedz się, jak wytwórz model klasyfikacji obrazów do rozpoznawania ręcznie napisanych liczb przy użyciu narzędzia TensorFlow i Azure Machine Learning Visual Studio Code Extension.

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

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

Wymagania wstępne

Zrozumienie kodu

Kod w tym samouczku używa programu TensorFlow do trenowania modelu uczenia maszynowego klasyfikacji obrazów, który kategoryzuje ręcznie napisane cyfry od 0 do 9. Robi to przez utworzenie sieci neuronowej, która przyjmuje wartości pikseli obrazu 28 pikseli x 28 pikseli jako dane wejściowe i wyprowadza listę 10 prawdopodobieństw, po jednym dla każdej klasyfikowanej cyfry. Poniżej znajduje się przykład tego, jak wyglądają dane.

Cyfry MNIST

Pobierz kod dla tego samouczka, pobierając i rozpakowywując repozytorium przykładów usługi Azure ML w dowolnym miejscu na komputerze.

Tworzenie obszaru roboczego

Pierwszą rzeczą, jaką należy wykonać, aby utworzyć aplikację w Azure Machine Learning jest utworzenie obszaru roboczego. Obszar roboczy zawiera zasoby do trenowania modeli, a także same wytrenowane modele. Aby uzyskać więcej informacji, zobacz co to jest obszar roboczy.

  1. Otwórz katalog azureml-examples-main/cli/jobs/train/tensorflow/mnist w Visual Studio Code.

  2. Na pasku Visual Studio Code wybierz ikonę platformy Azure, aby otworzyć Azure Machine Learning widok.

  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
    friendly_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    Szablon tworzy obszar roboczy o nazwie TeamWorkspace w WestUS2 regionie. Pozostałe opcje zdefiniowane w szablonie zapewniają przyjazne nazwy, opisy i tagi dla obszaru roboczego.

  5. Kliknij prawym przyciskiem myszy plik szablonu i wybierz pozycję Azure ML: Create Resource (Azure ML: Utwórz zasób). Tworzenie zasobu używa opcji konfiguracji zdefiniowanych w pliku specyfikacji YAML i przesyła zadanie przy użyciu interfejsu wiersza polecenia 2.0. W tym momencie do platformy Azure jest żą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. W ten sposób zasoby i zadania, które tworzysz, są domyślnie umieszczane w obszarze roboczym. Wybierz przycisk Ustaw usługę Azure Obszar roboczy usługi ML na pasku stanu Visual Studio Code i postępuj zgodnie z monitami, aby ustawić jako domyślny obszar TeamWorkspace roboczy.

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

Tworzenie klastra procesora GPU do trenowania

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

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

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

    Tworzenie trenowania klastra obliczeniowego

  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
    

    Szablon tworzy klaster procesorów GPU o nazwie z co najmniej 3 węzłami Standard_NC12 maszyny wirtualnej, który jest automatycznie skalowany w dół do gpu-cluster 0 węzłów po 120 sekundach braku aktywności.

    Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych, zobacz sizes for Linux virtual machines in Azure (Rozmiary maszyn wirtualnych z systemem Linux na platformie Azure).

  4. Kliknij prawym przyciskiem myszy plik szablonu i wybierz pozycję Azure ML: Create Resource (Azure ML: Utwórz zasób).

Po kilku minutach nowy docelowy obiekt obliczeniowy pojawi się w węźle Klastry obliczeniowe > obliczeniowe w obszarze roboczym.

Trenowanie modelu klasyfikacji obrazów

Podczas procesu trenowania model TensorFlow jest trenowany przez przetwarzanie danych szkoleniowych i wzorców szkoleniowych osadzonych w nim dla każdej z odpowiednich sklasyfikowanych cyfr.

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

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
    local_path: src
command: >
    python train.py
environment: azureml:AzureML-TensorFlow2.4-Cuda11-OpenMpi4.1.0-py36:1
compute:
    target: azureml:gpu-cluster
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Ten szablon przesyła zadanie szkoleniowe o nazwie do ostatnio utworzonego obiektu docelowego komputera, który uruchamia kod w tensorflow-mnist-example gpu-cluster skrypcie train.py Python. Używane środowisko jest jednym ze środowisk dostarczanych przez usługę Azure Machine Learning, które zawiera tensorFlow i inne zależności oprogramowania wymagane do uruchomienia skryptu trenowania. Aby uzyskać więcej informacji na temat środowisk wsadowych, zobacz Azure Machine Learning środowiska.

Aby przesłać zadanie szkolenia:

  1. Otwórz plik job.yml.
  2. Kliknij prawym przyciskiem myszy plik w edytorze tekstów i wybierz pozycję Azure ML: Create Resource (Azure ML: Utwórz zasób).

Uruchamianie eksperymentu

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

Gdy pojawi się okno dialogowe z prośbą o otwarcie 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 uaktualnione do stanu "Ukończono".

Następne kroki

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

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

Aby uzyskać informacje o następnych krokach, zobacz: