Eseguire lo script Python

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Esegue uno script Python da un esperimento di Machine Learning

Categoria: Moduli del linguaggio Python

Nota

Si applica a: solo Machine Learning Studio (versione classica)

I moduli di trascinamento della selezione simili sono disponibili in Azure Machine Learning finestra di progettazione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Execute Python Script (Esegui script Python) in Machine Learning Studio (versione classica) per eseguire il codice Python. Per altre informazioni sull'architettura e sui principi di progettazione di Python in Studio (versione classica), vedere l'articolo seguente.

Con Python è possibile eseguire attività attualmente non supportate da moduli esistenti di Studio (versione classica), ad esempio:

  • Visualizzazione dei dati tramite matplotlib
  • Uso delle librerie Python per enumerare set di dati e modelli nell'area di lavoro
  • Lettura, caricamento e modifica dei dati da origini non supportate dal modulo Importa dati

Machine Learning Studio (versione classica) usa la distribuzione Anaconda di Python, che include molte utilità comuni per l'elaborazione dei dati.

Come usare Execute Python Script

Il modulo Execute Python Script (Esegui script Python ) contiene codice Python di esempio che è possibile usare come punto di partenza. Per configurare il modulo Execute Python Script (Esegui script Python ), specificare un set di input e codice Python da eseguire nella casella di testo Script Python .

  1. Aggiungere il modulo Execute Python Script (Esegui script Python ) all'esperimento.

  2. Scorrere fino alla fine del riquadro Proprietà e, per Versione Python, selezionare la versione delle librerie Python e il runtime da usare nello script.

    • Distribuzione di Anaconda 2.0 per Python 2.7.7
    • Distribuzione di Anaconda 4.0 per Python 2.7.11
    • Distribuzione di Anaconda 4.0 per Python 3.5 (impostazione predefinita)

    È consigliabile impostare la versione prima di digitare qualsiasi nuovo codice. Se si modifica la versione in un secondo momento, viene chiesto di confermare la modifica.

    Importante

    Se si usano più istanze del modulo Execute Python Script nell'esperimento, è necessario scegliere una singola versione di Python per tutti i moduli nell'esperimento.

  3. Aggiungere e connettersi a Dataset1 tutti i set di dati da Studio (versione classica) da usare per l'input. Fare riferimento a questo set di dati nello script Python come DataFrame1.

    L'uso di un set di dati è facoltativo, se si vogliono generare dati usando Python o usare il codice Python per importare i dati direttamente nel modulo.

    Questo modulo supporta l'aggiunta di un secondo set di dati di Studio (versione classica) in Dataset2. Fare riferimento al secondo set di dati nello script Python come DataFrame2.

    I set di dati archiviati in Studio (versione classica) vengono convertiti automaticamente in pandas data.frames quando vengono caricati con questo modulo.

    Execute Python input map

  4. Per includere nuovi pacchetti o codice Python, aggiungere il file compresso contenente queste risorse personalizzate nel bundle di script. L'input del bundle script deve essere un file compresso già caricato nell'area di lavoro. Per altre informazioni su come preparare e caricare queste risorse, vedere Decomprimere i dati compressi.

    Qualsiasi file contenuto nell'archivio compresso caricato può essere usato durante l'esecuzione dell'esperimento. Se l'archivio include una struttura di directory, la struttura viene mantenuta, ma è necessario anteporre una directory denominata src al percorso.

  5. Nella casella di testo Script Python digitare o incollare uno script Python valido.

    La casella di testo Script Python è prepopolato con alcune istruzioni nei commenti e il codice di esempio per l'accesso ai dati e l'output. È necessario modificare o sostituire questo codice. Assicurarsi di seguire le convenzioni python relative al rientro e alla combinazione di maiuscole e minuscole.

    • Lo script deve contenere una funzione denominata azureml_main come punto di ingresso per questo modulo.
    • La funzione del punto di ingresso può contenere fino a due argomenti di input: Param<dataframe1> e Param<dataframe2>
    • I file compressi connessi alla terza porta di input vengono decompressi e archiviati nella directory , .\Script Bundleche viene aggiunto anche a Python sys.path.

    Pertanto, se il file ZIP contiene mymodule.py, importarlo usando import mymodule.

    • È possibile restituire un singolo set di dati a Studio (versione classica), che deve essere una sequenza di tipo pandas.DataFrame. È possibile creare altri output nel codice Python e scriverli direttamente nell'archiviazione di Azure oppure creare visualizzazioni usando il dispositivo Python.
  6. Eseguire l'esperimento oppure selezionare il modulo e fare clic su Esegui selezionato per eseguire solo lo script Python.

    Tutti i dati e il codice vengono caricati in una macchina virtuale ed eseguiti usando l'ambiente Python specificato.

Risultati

Il modulo restituisce i seguenti output:

  • Set di dati dei risultati. I risultati di tutti i calcoli eseguiti dal codice Python incorporato devono essere forniti come pandas data.frame, che viene convertito automaticamente nel formato del set di dati Machine Learning, in modo da poter usare i risultati con altri moduli nell'esperimento. Il modulo è limitato a un singolo set di dati come output. Per altre informazioni, vedere Tabella dati.

  • Python Device.  Questo output supporta sia l'output della console sia la visualizzazione di immagini PNG con l'interprete Python.

Come collegare le risorse di script

Il modulo Execute Python Script supporta file di script Python arbitrari come input, purché siano preparati in anticipo e caricati nell'area di lavoro come parte di un file di .ZIP.

Upload un file ZIP contenente codice Python nell'area di lavoro

  1. Nell'area dell'esperimento di Machine Learning Studio (versione classica) fare clic su Set di dati e quindi su Nuovo.

  2. Selezionare l'opzione Da file locale.

  3. Nella finestra di dialogo Upload un nuovo set di dati fare clic sull'elenco a discesa Selezionare un tipo per il nuovo set di dati e selezionare l'opzione Zip file (.zip).

  4. Fare clic su Sfoglia per individuare il file compresso.

  5. Digitare un nuovo nome da usare nell'area di lavoro. Il nome assegnato al set di dati diventa il nome della cartella nell'area di lavoro in cui vengono estratti i file contenuti.

  6. Dopo aver caricato il pacchetto compresso in Studio (versione classica), verificare che il file compresso sia disponibile nell'elenco Set di dati salvati e quindi connettere il set di dati alla porta di input dell'aggregazione di script .

    Tutti i file contenuti nel file ZIP sono disponibili per l'uso durante l'esecuzione, ad esempio dati di esempio, script o nuovi pacchetti Python.

    Se il file compresso contiene tutte le librerie che non sono già installate in Machine Learning Studio (versione classica), è necessario installare il pacchetto della libreria Python come parte dello script personalizzato.

    Se è presente una struttura di directory, viene mantenuta. Tuttavia, è necessario modificare il codice per anteporre la directory src al percorso.

Debug del codice Python

Il modulo Execute Python Script funziona meglio quando il codice è stato fattorizzato come funzione con input e output chiaramente definiti, anziché una sequenza di istruzioni eseguibili correlate in modo libero.

Questo modulo Python non supporta funzionalità come IntelliSense e debug. Se il modulo ha esito negativo in fase di esecuzione, è possibile visualizzare alcuni dettagli dell'errore nel log di output per il modulo. Tuttavia, l'analisi completa dello stack Python non è disponibile. È quindi consigliabile che gli utenti sviluppino ed eseseguono il debug degli script Python in un ambiente diverso e quindi importano il codice nel modulo.

Alcuni problemi comuni che è possibile cercare:

  • Controllare i tipi di dati nel frame di dati restituito da azureml_main. Gli errori sono probabilmente se le colonne contengono tipi di dati diversi da tipi numerici e stringhe.

  • Rimuovere i valori NA dal set di dati usando dataframe.dropna() in caso di esportazione dallo script Python. Quando si preparano i dati, usare il modulo Pulisci dati mancanti .

  • Controllare la presenza di errori di rientro e spazi vuoti nel codice incorporato. Se viene visualizzato l'errore "IndentationError: previsto un blocco rientrato", vedere queste risorse per indicazioni:

Limitazioni note

  • Il runtime python è in modalità sandbox e non consente l'accesso alla rete o al file system locale in modo permanente.

  • Tutti i file salvati localmente sono isolati ed eliminati al termine del modulo. Il codice Python non è in grado di accedere alla maggior parte delle directory nel computer in cui è in esecuzione, ad eccezione della directory corrente e delle relative sottodirectory.

    Quando si specifica un file compresso come risorsa, i file vengono copiati dall'area di lavoro nello spazio di esecuzione dell'esperimento, decompressi e quindi usati. La copia e la decompressione delle risorse possono utilizzare la memoria.

  • Il modulo può restituire un singolo frame di dati. Non è possibile restituire oggetti Python arbitrari, ad esempio modelli sottoposti a training direttamente al runtime di Studio (versione classica). È tuttavia possibile scrivere oggetti nella risorsa di archiviazione o nell'area di lavoro. Un'altra opzione consiste nell'usare pickle per serializzare più oggetti in una matrice di byte e quindi restituire la matrice all'interno di un frame di dati.

Esempio

Per esempi di integrazione di script Python con esperimenti di Studio (versione classica), vedere queste risorse in Azure AI Gallery:

Vedi anche

Moduli del linguaggio R