Verwenden Sie Azure ML Python SDK 2: Verwenden Sie ein Dataset als Eingabe-Teil 2

Inhalt dieser Zeit

In Verwenden von Azure ML Python SDK: Verwenden eines Datasets als Eingabe - Teil 1 wurde das Eingabedatensatz vom Aufrufer des Skripts script.py angegeben. Mit Azure Machine Learning Workspace können Sie ein Dataset registrieren. Daher möchten Sie es natürlich abrufen und in script.py verwenden. Dieses Mal werde ich vorstellen, wie es geht.

Aussehensgegenstand

Die Elemente, die dieses Mal angezeigt werden, sind wie folgt.

Das letzte Mal habe ich einen lokalen PC (Visual Studio Code, Azure ML Python SDK installiert) anstelle von Jupyter Notebook verwendet, aber beide sind hinsichtlich der Verwendung eines Remote-Compute-Clusters für die Skriptausführung identisch. Jupyter Notebook wird von einer Recheninstanz in Azure Machine Learning Studio aus gestartet und ist nützlich, da Sie Ihre Recheninstanz neu erstellen können, um die neueste Azure ML Python SDK-Version zu nutzen.

Azureml2.png

Die Ordnerstruktur von Notebook wird unter der Annahme beschrieben, dass sie wie folgt ist. Sie müssen config.json nicht berücksichtigen, da es sich in der Azure ML Workspace-Umgebung befindet.

Azureml4.png

Auch in diesem Beispiel ist script1.1.py so einfach wie das Lesen der CSV-Datei im Blob-Speicher und das Schreiben in das Ausgabeverzeichnis. Ebenso ist es die Aufgabe von HelloWorld1.1.ipynb, script1.1.py zur Ausführung an einen Computercluster zu senden.

Die Vorgehensweise für HelloWorld1.1.ipynb lautet wie folgt. Im Gegensatz zum letzten Mal gibt es keinen Schritt, um den CSV-Dateipfad im Blob-Speicher anzugeben. Azureml5.png

Verfahren

Schauen wir uns die Schritte der Reihe nach an.

  1. Laden Sie das Paket
    Laden Sie zuerst das Paket.

    
    import azureml.core
    from azureml.core import Workspace, Experiment, Dataset, Datastore, ScriptRunConfig
    from azureml.core.compute import ComputeTarget
    from azureml.core.compute_target import ComputeTargetException
    from azureml.core.runconfig import RunConfiguration, DEFAULT_CPU_IMAGE
    from azureml.core.conda_dependencies import CondaDependencies
    
    workspace = Workspace.from_config()
    
  2. Angeben eines Computerclusters
    Sie können mit dem Python SDK auch Remote-Rechenressourcen erstellen. Hier habe ich jedoch im Voraus einen Rechencluster im Azure ML Studo-Arbeitsbereich erstellt, um die allgemeine Sichtbarkeit zu verbessern.

    
    aml_compute_target = "demo-cpucluster"  # <== The name of the cluster being used
    try:
        aml_compute = ComputeTarget(workspace, aml_compute_target)
        print("found existing compute target.")
    except ComputeTargetException:
        print("no compute target with the specified name found")
    
  3. Angeben der Containerumgebung
    Geben Sie hier die Ausführungsumgebung an. Übergeben Sie die Compute-Cluster-Variablen und geben Sie die Pakete an, die im Container-Image verwendet werden sollen. Hier wird nur pip_package verwendet, Sie können jedoch auch conda_package angeben.

    run_config = RunConfiguration()
    run_config.target = aml_compute
    run_config.environment.docker.enabled = True
    run_config.environment.docker.base_image = DEFAULT_CPU_IMAGE
    run_config.environment.python.user_managed_dependencies = False  
    
    run_config.environment.python.conda_dependencies = CondaDependencies.create(
        pip_packages=['azureml-defaults'], 
        pin_sdk_version=False
        )
    
  4. Geben Sie den Namen der Ausführungsdatei an
    Geben Sie den Ordnernamen an, der die Skripte enthält, die remote mit script_folder ausgeführt werden sollen. Geben Sie im Skript auch den Namen der Skriptdatei an, die als Eintrag für die Remote-Ausführung verwendet werden soll. Bei der Remote-Ausführung werden alle Dateien und Unterverzeichnisse in script_folder an den Container übergeben. Achten Sie daher darauf, keine unnötigen Dateien zu platzieren. Die Eingabedatei wird von script1.1.py abgerufen, daher wird sie hier nicht angegeben.

    
    src = ScriptRunConfig(source_directory='script_folder', script='script1.1.py',
                          run_config = run_config)
    
  5. Führen Sie das Experiment aus
    experiment_name wird als Anzeigename für das Experiment verwendet.

    
    experiment_name = 'ScriptRunConfig2'
    experiment = Experiment(workspace = workspace, name = experiment_name)
    
    run = experiment.submit(config=src)
    run
    

Diese Zelle endet asynchron. Wenn Sie also auf das Ende der Ausführung warten möchten, führen Sie die folgende Anweisung aus.

```python

%%time
run.wait_for_completion(show_output=True)
```
  1. script1.1.py
    Der Inhalt eines remote ausgeführten Skripts. Get_context () übergibt die Ausführungsinformationen des aufrufenden Skripts. Die Experimentinformationen, bei denen es sich um die Attributinformationen in diesem Lauf handelt, werden abgerufen, und die Arbeitsbereichsinformationen, bei denen es sich um die Attributinformationen des Experiments handelt, werden abgerufen. Sobald Sie die Arbeitsbereichsinformationen kennen, können Sie den Datensatz mit get_by_name im Arbeitsbereich registrieren lassen. Dieser get_by_name wird in demselben Format geschrieben, das auf der Registerkarte "Verwenden" des registrierten Datasets in Azure Machine Learning Studio angezeigt wird.
    Dieses Skript schreibt die Datei schließlich in den Ausgabeordner. Standardmäßig wird dieser Ausgabeordner ohne Aktion erstellt und kann nach der Ausführung aus den "Ausgaben und Protokollen" des Experiments referenziert werden.

    
    from azureml.core import Run, Dataset, Workspace
    
    run = Run.get_context()
    exp = run.experiment
    workspace = exp.workspace
    
    dataset = Dataset.get_by_name(workspace, name='hello_ds')
    df = dataset.to_pandas_dataframe()
    
    HelloWorld = df.iloc[0,1]
    print('*******************************')
    print('********* ' + HelloWorld + ' *********')
    print('*******************************')
    
    df.to_csv('./outputs/HelloWorld.csv', mode='w', index=False)
    
  2. [Referenz] Inhalt von HelloWorld.txt
    Die hier verwendete CSV-Datei ist einfach.

    0,Hello World
    1,Hello World
    2,Hello World
    

abschließend

Was denken Sie. Es gibt verschiedene Variationen der Eingabe / Ausgabe des Azure ML Python SDK. Nächstes Mal möchte ich die Ausgabe vorstellen.

Referenzmaterial

Was ist das Azure Machine Learning SDK für Python? azureml.core.experiment.Experiment class - Microsoft Docs Azure ML Python SDK 1 verwenden: Dataset als Eingabe-Teil 1 verwenden Verwenden von Azure ML Python SDK 3: Exportieren der Ausgabe in den Blob-Speicher - Teil 1 [Verwenden von Azure ML Python SDK 4: Exportieren der Ausgabe in den Blob-Speicher - Teil 2] (https://qiita.com/notanaha/items/655290670a83f2a00fdc)

Recommended Posts

Verwenden Sie Azure ML Python SDK 2: Verwenden Sie ein Dataset als Eingabe-Teil 2
Verwenden Sie Azure ML Python SDK 4: Schreiben Sie die Ausgabe in den Blob-Speicher - Teil 2
Verwenden Sie Azure ML Python SDK 3: Ausgabe in Blob-Speicher schreiben - Teil 1
Verwenden Sie Pymol als Python-Bibliothek
Verwenden Sie Stoff wie in Python (Stoff3)
Verwenden Sie Blender als Python-Modul
Verwenden Sie Azure Blob Storage aus Python
Verwenden Sie einbettbares Python als Python 3-Oberfläche von Vim
Verwenden Sie Python und MeCab mit Azure-Funktionen
Verwenden Sie Python im Docker-Container als Pycharm-Interpreter
Verwenden Sie Python und word2vec (gelernt) mit Azure Databricks
Verwenden Sie Python / Django mit dem Windows Azure Cloud Service!
Überprüfen Sie, wie Sie Azure Key Vault mit Azure SDK für Python verwenden! (Maßnahmen rund um die Zertifizierung)
Geben Sie MinGW als den in Python verwendeten Compiler an
Verwenden Sie das AWS SDK für Python (boto) in einer Proxy-Umgebung
Ich möchte R-Datensatz mit Python verwenden