Självstudie: Träna en TensorFlow-modell för bildklassificering med hjälp av Azure Machine Learning Visual Studio Code-tillägget (förhandsversion)
GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)
Lär dig hur du tränar en bildklassificeringsmodell för att identifiera handskrivna tal med TensorFlow och Azure Machine Learning Visual Studio Code-tillägget.
Viktigt!
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.
Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
I den här självstudien kommer du att lära dig följande:
- Förstå koden
- Skapa en arbetsyta
- Träna en modell
Förutsättningar
- En Azure-prenumeration. Om du inte har någon kan du registrera dig för att prova den kostnadsfria eller betalda versionen av Azure Machine Learning. Om du använder den kostnadsfria prenumerationen stöds endast CPU-kluster.
- Installera Visual Studio Code, en enkel kodredigerare mellan plattformar.
- Azure Machine Learning-studio Visual Studio Code-tillägget. Installationsinstruktioner finns i installationsguiden för Azure Machine Learning Visual Studio Code
- CLI (v2). Installationsinstruktioner finns i Installera, konfigurera och använda CLI (v2)
- Klona den communitydrivna lagringsplatsen
git clone https://github.com/Azure/azureml-examples.git
Förstå koden
Koden för den här självstudien använder TensorFlow för att träna en maskininlärningsmodell för bildklassificering som kategoriserar handskrivna siffror från 0–9. Det gör det genom att skapa ett neuralt nätverk som tar pixelvärdena på 28 px x 28 px bild som indata och matar ut en lista med 10 sannolikheter, en för var och en av de siffror som klassificeras. Det här är ett exempel på hur data ser ut.
Skapa en arbetsyta
Det första du måste göra för att skapa ett program i Azure Machine Learning är att skapa en arbetsyta. En arbetsyta innehåller resurser för att träna modeller och de tränade modellerna själva. Mer information finns i vad som är en arbetsyta.
Öppna katalogen azureml-examples/cli/jobs/single-step/tensorflow/mnist från den communitydrivna lagringsplatsen i Visual Studio Code.
I aktivitetsfältet i Visual Studio Code väljer du Azure-ikonen för att öppna Azure Machine Learning-vyn.
Högerklicka på din prenumerationsnod i Azure Machine Learning-vyn och välj Skapa arbetsyta.
En specifikationsfil visas. Konfigurera specifikationsfilen med följande alternativ.
$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
Specifikationsfilen skapar en arbetsyta som heter
TeamWorkspace
iWestUS2
regionen. Resten av alternativen som definierats i specifikationsfilen ger användarvänlig namngivning, beskrivningar och taggar för arbetsytan.Högerklicka på specifikationsfilen och välj AzureML: Kör YAML. När du skapar en resurs används de konfigurationsalternativ som definierats i YAML-specifikationsfilen och ett jobb skickas med HJÄLP av CLI (v2). Nu görs en begäran till Azure om att skapa en ny arbetsyta och beroende resurser i ditt konto. Efter några minuter visas den nya arbetsytan i din prenumerationsnod.
Ange
TeamWorkspace
som standardarbetsyta. På så sätt placeras resurser och jobb som du skapar på arbetsytan som standard. Välj knappen Ange Azure Machine Learning-arbetsyta i statusfältet i Visual Studio Code och följ anvisningarna för att angeTeamWorkspace
som standardarbetsyta.
Mer information om arbetsytor finns i hantera resurser i VS Code.
Träna modellen
Under träningsprocessen tränas en TensorFlow-modell genom att bearbeta träningsdata och inlärningsmönster som är inbäddade i dem för var och en av de respektive siffror som klassificeras.
Precis som arbetsytor och beräkningsmål definieras träningsjobb med hjälp av resursmallar. För det här exemplet definieras specifikationen i filen job.yml , som ser ut så här:
$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.
Den här specifikationsfilen skickar ett träningsjobb som anropas tensorflow-mnist-example
till det nyligen skapade gpu-cluster
datormålet som kör koden i train.py Python-skriptet. Den miljö som används är en av de utvalda miljöer som tillhandahålls av Azure Machine Learning som innehåller TensorFlow och andra programvaruberoenden som krävs för att köra träningsskriptet. Mer information om utvalda miljöer finns i Azure Machine Learning-kurerade miljöer.
Så här skickar du träningsjobbet:
- Öppna filen job.yml .
- Högerklicka på filen i textredigeraren och välj AzureML: Kör YAML.
Nu skickas en begäran till Azure för att köra experimentet på det valda beräkningsmålet på arbetsytan. Den här processen tar flera minuter. Hur lång tid det tar att köra träningsjobbet påverkas av flera faktorer som beräkningstypen och träningsdatastorleken. Om du vill spåra förloppet för experimentet högerklickar du på den aktuella körningsnoden och väljer Visa jobb i Azure Portal.
När dialogrutan som begär att öppna en extern webbplats visas väljer du Öppna.
När modellen är klar med träningen uppdateras statusetiketten bredvid körningsnoden till "Slutförd".
Nästa steg
- Starta Visual Studio Code integrerat med Azure Machine Learning (förhandsgranskning)
- En genomgång av hur du redigerar, kör och felsöker kod lokalt finns i självstudien om Python hello-world.
- Kör Jupyter Notebooks i Visual Studio Code med hjälp av en fjärransluten Jupyter-server.
- En genomgång av hur du tränar med Azure Machine Learning utanför Visual Studio Code finns i Självstudie: Träna och distribuera en modell med Azure Machine Learning.