Python-script uitvoeren

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Hiermee wordt een Python script uitgevoerd vanuit een Machine Learning experiment

Categorie: Python taalmodules

Notitie

Van toepassing op: alleen Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module Execute Python Script gebruikt in Machine Learning Studio (klassiek) om Python code uit te voeren. Zie het volgende artikel voor meer informatie over de architectuur en ontwerpprincipes van Python in Studio (klassiek).

Met Python kunt u taken uitvoeren die momenteel niet worden ondersteund door bestaande Studio-modules (klassiek), zoals:

  • Gegevens visualiseren met behulp van matplotlib
  • Gegevenssets en modellen in uw werkruimte inventariseren met behulp van Python bibliotheken
  • Gegevens lezen, laden en bewerken uit bronnen die niet worden ondersteund door de module Gegevens importeren

Machine Learning Studio (klassiek) maakt gebruik van de Anaconda-distributie van Python, waaronder veel algemene hulpprogramma's voor gegevensverwerking.

Execute Python Script gebruiken

De module Execute Python Script bevat voorbeeldcode Python die u als uitgangspunt kunt gebruiken. Als u de module Execute Python Script wilt configureren, geeft u een set invoer en Python code op die moet worden uitgevoerd in het tekstvak Python script.

  1. Voeg de module Execute Python Script toe aan uw experiment.

  2. Schuif naar de onderkant van het deelvenster Eigenschappen en selecteer voor Python versie de versie van de Python bibliotheken en runtime die u in het script wilt gebruiken.

    • Anaconda 2.0 distributie voor Python 2.7.7
    • Anaconda 4.0 distributie voor Python 2.7.11
    • Anaconda 4.0-distributie voor Python 3,5 (standaard)

    U wordt aangeraden de versie in te stellen voordat u nieuwe code typt. Als u de versie later wijzigt, wordt u gevraagd de wijziging te bevestigen.

    Belangrijk

    Als u meerdere exemplaren van de module Execute Python Script in uw experiment gebruikt, moet u één versie van Python kiezen voor alle modules in het experiment.

  3. Voeg gegevenssets in Dataset1 toe en maak er verbinding mee vanuit Studio (klassiek) die u wilt gebruiken voor invoer. Verwijs naar deze gegevensset in uw Python script als DataFrame1.

    Het gebruik van een gegevensset is optioneel, als u gegevens wilt genereren met behulp van Python of Python code wilt gebruiken om de gegevens rechtstreeks in de module te importeren.

    Deze module ondersteunt het toevoegen van een tweede Studio-gegevensset (klassiek) op Dataset2. Verwijs naar de tweede gegevensset in uw Python script als DataFrame2.

    Gegevenssets die zijn opgeslagen in Studio (klassiek) worden automatisch geconverteerd naar pandas data.frames wanneer deze module wordt geladen.

    Execute Python input map

  4. Als u nieuwe Python pakketten of code wilt opnemen, voegt u het zip-bestand toe met deze aangepaste resources in scriptbundel. De invoer voor scriptbundel moet een gezipt bestand zijn dat al is geüpload naar uw werkruimte. Zie Zipped Data uitpakken voor meer informatie over het voorbereiden en uploaden van deze resources.

    Elk bestand in het geüploade zip-archief kan worden gebruikt tijdens het uitvoeren van het experiment. Als het archief een mapstructuur bevat, blijft de structuur behouden, maar moet u een map met de naam src naar het pad voorbereiden.

  5. Typ of plak geldig Python script in het tekstvak Python script.

    Het tekstvak Python script is vooraf ingevuld met enkele instructies in opmerkingen en voorbeeldcode voor gegevenstoegang en uitvoer. U moet deze code bewerken of vervangen. Zorg ervoor dat u Python conventies over inspringing en behuizing volgt.

    • Het script moet een functie bevatten met de naam azureml_main van het toegangspunt voor deze module.
    • De invoerpuntfunctie kan maximaal twee invoerargumenten bevatten: Param<dataframe1> en Param<dataframe2>
    • Gezipte bestanden die zijn verbonden met de derde invoerpoort, worden uitgepakt en opgeslagen in de map, .\Script Bundledie ook wordt toegevoegd aan de Pythonsys.path.

    Als uw zip-bestand daarom bevat mymodule.py, importeert u het met behulp van import mymodule.

    • Eén gegevensset kan worden geretourneerd naar Studio (klassiek), wat een reeks typen pandas.DataFramemoet zijn. U kunt andere uitvoer in uw Python code maken en deze rechtstreeks naar Azure Storage schrijven of visualisaties maken met behulp van het Python apparaat.
  6. Voer het experiment uit of selecteer de module en klik op Uitvoeren geselecteerd om alleen het script Python uit te voeren.

    Alle gegevens en code worden geladen in een virtuele machine en worden uitgevoerd met behulp van de opgegeven Python-omgeving.

Resultaten

De module retourneert de volgende uitvoer:

  • Resultatengegevensset. De resultaten van berekeningen die worden uitgevoerd door de ingesloten Python code, moeten worden opgegeven als een pandas data.frame, dat automatisch wordt geconverteerd naar de indeling van de Machine Learning gegevensset, zodat u de resultaten met andere modules in het experiment kunt gebruiken. De module is beperkt tot één gegevensset als uitvoer. Zie Gegevenstabel voor meer informatie.

  • Python apparaat. Deze uitvoer ondersteunt zowel console-uitvoer als weergave van PNG-afbeeldingen met behulp van de Python interpreter.

Scriptbronnen koppelen

De module Execute Python Script ondersteunt willekeurige Python scriptbestanden als invoer, mits deze vooraf worden voorbereid en geüpload naar uw werkruimte als onderdeel van een .ZIP-bestand.

Upload een ZIP-bestand met Python code in uw werkruimte

  1. Klik in het experimentgebied van Machine Learning Studio (klassiek) op Gegevenssets en klik vervolgens op Nieuw.

  2. Selecteer de optie, in het lokale bestand.

  3. Klik in het dialoogvenster Upload een nieuwe gegevensset op de vervolgkeuzelijst voor Selecteer een type voor de nieuwe gegevensset en selecteer de optie Zip-bestand (.zip).

  4. Klik op Bladeren om het zip-bestand te zoeken.

  5. Typ een nieuwe naam voor gebruik in de werkruimte. De naam die u aan de gegevensset toewijst, wordt de naam van de map in uw werkruimte waarin de ingesloten bestanden worden geëxtraheerd.

  6. Nadat u het zip-pakket naar Studio (klassiek) hebt geüpload, controleert u of het zip-bestand beschikbaar is in de lijst Opgeslagen gegevenssets en verbindt u de gegevensset vervolgens met de invoerpoort scriptbundel .

    Alle bestanden in het ZIP-bestand zijn beschikbaar voor gebruik tijdens runtime: bijvoorbeeld voorbeeldgegevens, scripts of nieuwe Python pakketten.

    Als het zip-bestand bibliotheken bevat die nog niet zijn geïnstalleerd in Machine Learning Studio (klassiek), moet u het Python bibliotheekpakket installeren als onderdeel van uw aangepaste script.

    Als er een mapstructuur aanwezig is, blijft deze behouden. U moet uw code echter wijzigen om de map-src vooraf te laten gaan aan het pad.

Foutopsporing Python code

De Execute Python Script-module werkt het beste wanneer de code is meegenomen als een functie met duidelijk gedefinieerde invoer en uitvoer, in plaats van een reeks losjes gerelateerde uitvoerbare instructies.

Deze Python-module biedt geen ondersteuning voor functies zoals IntelliSense en foutopsporing. Als de module mislukt tijdens runtime, kunt u enkele foutdetails bekijken in het uitvoerlogboek voor de module. De volledige Python stacktracering is echter niet beschikbaar. Daarom raden we gebruikers aan om hun Python scripts in een andere omgeving te ontwikkelen en er fouten in op te sporen en vervolgens de code in de module te importeren.

Enkele veelvoorkomende problemen die u kunt zoeken:

  • Controleer de gegevenstypen in het gegevensframe van azureml_mainwaaruit u terugkeert. Fouten zijn waarschijnlijk als kolommen andere gegevenstypen bevatten dan numerieke typen en tekenreeksen.

  • Verwijder NA-waarden uit uw gegevensset met behulp van dataframe.dropna() exporteren uit Python script. Wanneer u uw gegevens voorbereidt, gebruikt u de module Clean Missing Data .

  • Controleer de ingesloten code op inspringings- en witruimtefouten. Als u de fout 'IndentationError: een ingesprongen blok verwacht' krijgt, raadpleegt u de volgende bronnen voor hulp:

Bekende beperkingen

  • De Python runtime is in de sandbox geplaatst en staat geen toegang tot het netwerk of het lokale bestandssysteem op een permanente manier toe.

  • Alle bestanden die lokaal zijn opgeslagen, worden geïsoleerd en verwijderd zodra de module is voltooid. De Python code heeft geen toegang tot de meeste mappen op de computer waarop deze wordt uitgevoerd, de uitzondering is de huidige map en de bijbehorende submappen.

    Wanneer u een zip-bestand als bron opgeeft, worden de bestanden uit uw werkruimte gekopieerd naar de uitvoeringsruimte van het experiment, uitgepakt en vervolgens gebruikt. Het kopiëren en uitpakken van resources kan geheugen verbruiken.

  • De module kan één gegevensframe uitvoeren. Het is niet mogelijk om willekeurige Python objecten, zoals getrainde modellen, rechtstreeks terug te sturen naar de Studio-runtime (klassiek). U kunt echter objecten naar de opslag of naar de werkruimte schrijven. Een andere optie is om meerdere objecten te pickle serialiseren in een bytematrix en vervolgens de matrix in een gegevensframe te retourneren.

Voorbeelden

Zie de volgende resources in de Azure AI Gallery voor voorbeelden van het integreren van Python script met Studio-experimenten (klassiek):

Zie ook

R-taalmodules