Trénování modelu klasifikace obrázků TensorFlow pomocí rozšíření Azure Machine Learning Visual Studio Code (Preview)

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)

Naučte se trénovat model klasifikace obrázků tak, aby rozpoznával ručně napsaná čísla pomocí TensorFlow a rozšíření Visual Studio Code pro Azure Machine Learning.

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

V tomto kurzu se naučíte provádět následující úlohy:

  • Vysvětlení kódu
  • Vytvoření pracovního prostoru
  • Vytvoření clusteru GPU pro trénování
  • Učení modelu

Požadavky

Vysvětlení kódu

Kód pro tento kurz používá TensorFlow k trénování modelu strojového učení klasifikace obrázků, který kategorizuje ručně psané číslice od 0 do 9. Dělá to tak, že vytvoří neurální síť, která jako vstup vezme pixelové hodnoty obrázku o rozměrech 28 × 28 px a vypíše seznam 10 pravděpodobností, jednu pro každou z klasifikovaných číslic. Níže je ukázka toho, jak data vypadají.

Číslice MNIST

Vytvoření pracovního prostoru

První věc, kterou musíte udělat, abyste vytvořili aplikaci ve službě Azure Machine Learning, je vytvořit pracovní prostor. Pracovní prostor obsahuje prostředky pro trénování modelů i samotné natrénované modely. Další informace najdete v tématu Co je pracovní prostor.

  1. Otevřete adresář azureml-examples/cli/jobs/single-step/tensorflow/mnist z úložiště řízeného komunitou v editoru Visual Studio Code.

  2. Na panelu aktivit editoru Visual Studio Code výběrem ikony Azure otevřete zobrazení Služby Azure Machine Learning.

  3. V zobrazení Azure Machine Learning klikněte pravým tlačítkem na uzel předplatného a vyberte Vytvořit pracovní prostor.

    Vytvoření pracovního prostoru

  4. Zobrazí se soubor specifikace. Nakonfigurujte soubor specifikace s následujícími možnostmi.

    $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
    

    Soubor specifikace vytvoří pracovní prostor s názvem TeamWorkspace v WestUS2 oblasti. Zbývající možnosti definované v souboru specifikace poskytují popisné názvy, popisy a značky pracovního prostoru.

  5. Klikněte pravým tlačítkem na soubor specifikace a vyberte AzureML: Spustit YAML. Při vytváření prostředku se používají možnosti konfigurace definované v souboru specifikace YAML a odešle se úloha pomocí rozhraní příkazového řádku (verze 2). V tomto okamžiku se do Azure vytvoří žádost o vytvoření nového pracovního prostoru a závislých prostředků ve vašem účtu. Po několika minutách se nový pracovní prostor zobrazí v uzlu předplatného.

  6. Nastavte TeamWorkspace jako výchozí pracovní prostor. Tím ve výchozím nastavení umístíte prostředky a úlohy, které vytvoříte v pracovním prostoru. Na stavovém řádku editoru Visual Studio Code vyberte tlačítko Nastavit pracovní prostor služby Azure Machine Learning a podle pokynů nastavte TeamWorkspace jako výchozí pracovní prostor.

Další informace o pracovních prostorech najdete v tématu Správa prostředků ve VS Code.

Vytvoření clusteru GPU pro trénování

Cílový výpočetní objekt je výpočetní prostředek nebo prostředí, ve kterém spouštíte trénovací úlohy. Další informace najdete v dokumentaci k cílovým výpočetním objektům služby Azure Machine Learning.

  1. V zobrazení Azure Machine Learning rozbalte uzel pracovního prostoru.

  2. Klikněte pravým tlačítkem na uzel Výpočetní clustery uvnitř uzlu Compute vašeho pracovního prostoru a vyberte Vytvořit výpočetní prostředky.

    Vytvoření trénovacího výpočetního clusteru

  3. Zobrazí se soubor specifikace. Nakonfigurujte soubor specifikace s následujícími možnostmi.

    $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
    

    Soubor specifikace vytvoří cluster GPU s názvem gpu-cluster s maximálně 3 Standard_NC12 uzly virtuálních počítačů, které se po 120 sekundách nečinnosti automaticky škálují na 0 uzlů.

    Další informace o velikostech virtuálních počítačů najdete v tématu Velikosti virtuálních počítačů s Linuxem v Azure.

  4. Klikněte pravým tlačítkem na soubor specifikace a vyberte AzureML: Spustit YAML.

Po několika minutách se nový cílový výpočetní objekt zobrazí v uzlu Výpočetní > clustery vašeho pracovního prostoru.

Trénování modelu klasifikace obrázků

Během trénování se model TensorFlow trénuje zpracováním trénovacích dat a vzorců učení, které jsou v něm vloženy pro každou z příslušných klasifikovaných číslic.

Podobně jako pracovní prostory a cíle výpočetních prostředků se trénovací úlohy definují pomocí šablon prostředků. Pro tuto ukázku je specifikace definována v souboru job.yml , který vypadá takto:

$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.

Tento soubor specifikace odešle trénovací úlohu s názvem tensorflow-mnist-example do nedávno vytvořeného gpu-cluster cílového počítače, který spustí kód ve skriptu train.py Pythonu. Použité prostředí je jedno z kurátorovaných prostředí poskytovaných službou Azure Machine Learning, které obsahuje TensorFlow a další softwarové závislosti potřebné ke spuštění trénovacího skriptu. Další informace o kurátorovaných prostředích najdete v tématu Kurátorovaná prostředí azure Machine Learning.

Odeslání trénovací úlohy:

  1. Otevřete soubor job.yml .
  2. Klikněte pravým tlačítkem na soubor v textovém editoru a vyberte AzureML: Spustit YAML.

V tomto okamžiku se do Azure odešle žádost o spuštění experimentu na vybraném cílovém výpočetním objektu ve vašem pracovním prostoru. Tento proces trvá několik minut. Doba trvání spuštění trénovací úlohy je ovlivněná několika faktory, jako je typ výpočetních prostředků a velikost trénovacích dat. Pokud chcete sledovat průběh experimentu, klikněte pravým tlačítkem na uzel aktuálního spuštění a vyberte Zobrazit úlohu v Azure Portal.

Když se zobrazí dialogové okno s žádostí o otevření externího webu, vyberte Otevřít.

Sledování průběhu experimentu

Po dokončení trénování modelu se popisek stavu vedle uzlu spuštění aktualizuje na Dokončeno.

Další kroky

V tomto kurzu se naučíte provádět následující úlohy:

  • Vysvětlení kódu
  • Vytvoření pracovního prostoru
  • Vytvoření clusteru GPU pro trénování
  • Učení modelu

Další kroky najdete tady: