Delen via


Zelfstudie: Aan de slag met een Python-script in Azure Machine Learning (SDK v1, deel 1 van 3)

VAN TOEPASSING OP: Python SDK azureml v1

In deze zelfstudie voert u uw eerste Python-script uit in de cloud met Azure Machine Learning. Deze zelfstudie is deel 1 van een tweedelige reeks zelfstudies.

Deze zelfstudie voorkomt de complexiteit van het trainen van een machine learning-model. U voert een Python-script 'Hallo wereld' uit in de cloud. U leert hoe een besturingsscript wordt gebruikt voor het configureren en maken van een uitvoering in Azure Machine Learning.

In deze zelfstudie leert u het volgende:

  • Een 'Hallo wereld!' maken en uitvoeren Python-script.
  • Maak een Python-besturingsscript om 'Hallo wereld!' naar Azure Machine Learning te verzenden.
  • Inzicht krijgen in de Azure Machine Learning-concepten in het besturingsscript
  • Verzend en voer het script 'Hallo wereld!' uit.
  • De code-uitvoer weergeven in de cloud.

Vereisten

Een Python-script maken en uitvoeren

In deze zelfstudie wordt het rekenproces gebruikt als uw ontwikkelcomputer. Maak eerst een paar mappen en het script:

  1. Meld u aan bij de Azure Machine Learning-studio en selecteer uw werkruimte als u hierom wordt gevraagd.
  2. Selecteer notitieblokken aan de linkerkant
  3. Selecteer op de werkbalk Bestanden de optie +Nieuwe map maken. Schermopname van het maken van een nieuw maphulpprogramma op de werkbalk.
  4. Geef de map de naam aan de slag.
  5. Gebruik rechts van de mapnaam de map ... om een andere map te maken onder Aan de slag. Schermopname van het maken van een submapmenu.
  6. Geef de nieuwe map de naam src. Gebruik de koppeling Locatie bewerken als de bestandslocatie niet juist is.
  7. Rechts van de src-map gebruikt u de map ... om een nieuw bestand te maken in de src-map .
  8. Geef het bestand een naam hello.py. Schakel het bestandstype over naar Python (.py)*.

Kopieer deze code naar uw bestand:

# src/hello.py
print("Hello world!")

De projectmapstructuur ziet er nu als volgt uit:

Mapstructuur toont hello.py in de submap src.

Uw script testen

U kunt uw code lokaal uitvoeren, wat in dit geval betekent voor het rekenproces. Code lokaal uitvoeren biedt het voordeel van interactieve foutopsporing.

Als u uw rekenproces eerder hebt gestopt, start u het nu met het rekenprogramma Starten rechts van de vervolgkeuzelijst voor berekeningen. Wacht ongeveer een minuut totdat de status is gewijzigd in Actief.

Schermopname van het starten van het rekenproces als het is gestopt

Selecteer Opslaan en script uitvoeren in terminal om het script uit te voeren.

Schermopname van het opslaan en uitvoeren van het script in het terminalhulpprogramma op de werkbalk

U ziet de uitvoer van het script in het terminalvenster dat wordt geopend. Sluit het tabblad en selecteer Beëindigen om de sessie te sluiten.

Een besturingsscript maken

Met een besturingsscript kunt u uw hello.py script uitvoeren op verschillende rekenresources. Met het besturingsscript kunt u bepalen hoe en waar uw machine learning-code wordt uitgevoerd.

Selecteer de map ... aan het einde van de map Aan de slag om een nieuw bestand te maken. Maak een Python-bestand met de naam run-hello.py en kopieer/plak de volgende code in dat bestand:

# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig

ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')

config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')

run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)

Tip

Als u een andere naam hebt gebruikt bij het maken van uw rekencluster, moet u ook de naam in de code compute_target='cpu-cluster' aanpassen.

De code begrijpen

Hier volgt een beschrijving van hoe het besturingsscript werkt:

ws = Workspace.from_config()

Werkruimte maakt verbinding met uw Azure Machine Learning-werkruimte, zodat u kunt communiceren met uw Azure Machine Learning-resources.

experiment = Experiment( ... )

Experiment biedt een eenvoudige manier om meerdere taken onder één naam te organiseren. Later kunt u zien hoe experimenten het eenvoudig maken om metrische gegevens tussen tientallen taken te vergelijken.

config = ScriptRunConfig( ... )

Met ScriptRunConfig wordt uw hello.py-code ingepakt en doorgegeven aan uw werkruimte. Zoals de naam suggereert, kunt u deze klasse gebruiken om te configureren hoe u wilt dat uw script wordt uitgevoerd in Azure Machine Learning. Er wordt ook aangegeven op welk rekendoel het script wordt uitgevoerd. In deze code is het doel het rekencluster dat u hebt gemaakt in de installatiezelfstudie.

run = experiment.submit(config)

Hiermee wordt het script verzonden. Deze inzending wordt een uitvoering genoemd. In v2 is de naam gewijzigd in een taak. Een run/job bevat één uitvoering van uw code. Gebruik een taak om de voortgang van het script te bewaken, de uitvoer vast te leggen, de resultaten te analyseren, metrische gegevens te visualiseren en meer.

aml_url = run.get_portal_url()

Het run-object biedt een ingang voor de uitvoering van uw code. Controleer de voortgang van de Azure Machine Learning-studio met de URL die wordt afgedrukt vanuit het Python-script.

Uw code in de cloud verzenden en uitvoeren

  1. Selecteer Opslaan en script uitvoeren in terminal om uw besturingsscript uit te voeren, dat op zijn beurt wordt uitgevoerd hello.py op het rekencluster dat u in de installatiezelfstudie hebt gemaakt.

  2. In de terminal wordt u mogelijk gevraagd u aan te melden om zich te verifiëren. Kopieer de code en volg de koppeling om deze stap te voltooien.

  3. Zodra u bent geverifieerd, ziet u een koppeling in de terminal. Selecteer de koppeling om de taak weer te geven.

Uw code bewaken in de cloud in de studio

De uitvoer van uw script bevat een koppeling naar de studio die er ongeveer als volgt uitziet: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>.

Volg de koppeling. In eerste instantie ziet u de status In wachtrij of Voorbereiden. De eerste uitvoering duurt 5-10 minuten. Dit komt doordat het volgende gebeurt:

  • Er wordt een Docker-installatiekopie gemaakt in de cloud
  • De grootte van het berekeningscluster wordt gewijzigd van 0 naar 1 knooppunt
  • De Docker-installatiekopie wordt gedownload naar de berekening.

Volgende taken zijn sneller (~15 seconden) omdat de docker-installatiekopieën in de cache worden opgeslagen op de berekening. U kunt dit testen door de onderstaande code opnieuw in te dienen nadat de eerste taak is voltooid.

Wacht ongeveer 10 minuten. U ziet een bericht dat de taak is voltooid. Gebruik vervolgens Vernieuwen om de statuswijziging in Voltooid te zien. Zodra de taak is voltooid, gaat u naar het tabblad Uitvoer en logboeken . Daar ziet u een std_log.txt bestand in de user_logs map. De uitvoer van uw script bevindt zich in dit bestand.

De azureml-logs en system-logs mappen bevatten bestanden die nuttig kunnen zijn wanneer u externe taken in de cloud foutopsporing uitvoert.

Volgende stap

In deze zelfstudie hebt u een eenvoudig Hallo wereld-script gemaakt en uitgevoerd in Azure. U hebt gezien hoe u verbinding maakt met uw Azure Machine Learning-werkruimte, een experiment maakt en uw hello.py-code naar de cloud verzendt.

In de volgende zelfstudie maakt u gebruik van de opgedane kennis en voert u iets interessanters uit dan print("Hello world!").

Notitie

Als u de reeks zelfstudies nu wilt voltooien en niet wilt doorgaan met de volgende stap, moet u uw resources opschonen