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
- Voltooi Resources maken die u nodig hebt om aan de slag te gaan met het maken van een werkruimte en rekenproces voor gebruik in deze reeks zelfstudies.
-
- Maak een cloud-gebaseerd rekencluster. Geef het de naam 'cpu-cluster' zodat deze overeenkomt met de code in deze zelfstudie.
Een Python-script maken en uitvoeren
In deze zelfstudie wordt het rekenproces gebruikt als uw ontwikkelcomputer. Maak eerst een paar mappen en het script:
- Meld u aan bij de Azure Machine Learning-studio en selecteer uw werkruimte als u hierom wordt gevraagd.
- Selecteer notitieblokken aan de linkerkant
- Selecteer op de werkbalk Bestanden de optie +Nieuwe map maken.
- Geef de map de naam aan de slag.
- Gebruik rechts van de mapnaam de map ... om een andere map te maken onder Aan de slag.
- Geef de nieuwe map de naam src. Gebruik de koppeling Locatie bewerken als de bestandslocatie niet juist is.
- Rechts van de src-map gebruikt u de map ... om een nieuw bestand te maken in de src-map .
- 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:
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.
Selecteer Opslaan en script uitvoeren in terminal om het script uit te voeren.
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
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.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.
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