Dans Use Azure ML Python SDK: Using a dataset as input - Part 1, l'ensemble de données d'entrée a été spécifié par l'appelant du script script.py. Azure Machine Learning Workspace vous permet d'inscrire un ensemble de données, il est donc naturel de vouloir le récupérer et de l'utiliser dans script.py. Cette fois, je vais vous présenter comment le faire.
Les éléments qui apparaîtront cette fois sont les suivants.
La dernière fois, j'ai utilisé un PC local (avec Visual Studio Code, le SDK Azure ML Python installé) au lieu d'un Jupyter Notebook, mais les deux sont identiques en termes d'utilisation d'un cluster de calcul distant pour l'exécution de script. Lancement à partir d'une instance de calcul dans Azure Machine Learning Studio, Jupyter Notebook est utile car vous pouvez recréer votre instance de calcul pour tirer parti de la dernière version du SDK Azure ML Python.
La structure des dossiers de Notebook est décrite en supposant qu'elle est la suivante. Comme il se trouve dans l'environnement Azure ML Workspace, config.json n'a pas besoin d'être pris en compte.
Dans cet exemple également, script1.1.py est aussi simple que de lire le fichier CSV sur le stockage blob et de l'écrire dans le répertoire de sortie. De même, c'est le rôle de HelloWorld1.1.ipynb d'envoyer script1.1.py à un cluster informatique pour exécution.
La procédure pour HelloWorld1.1.ipynb est la suivante. Contrairement à la dernière fois, il n'y a aucune étape pour spécifier le chemin du fichier CSV sur Blob Storage.
Jetons un coup d'œil aux étapes dans l'ordre.
Chargez le package
Commencez par charger le package.
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()
Spécification d'un cluster informatique
Vous pouvez également créer des ressources de calcul à distance avec le SDK Python, mais ici, j'ai créé à l'avance un cluster de calcul dans l'espace de travail Azure ML Studo pour une meilleure visibilité globale.
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")
Spécification de l'environnement du conteneur
Spécifiez ici l'environnement d'exécution. Transmettez les variables de cluster de calcul et spécifiez les packages à utiliser dans l'image du conteneur. Seul pip_package est utilisé ici, mais vous pouvez également spécifier conda_package.
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
)
Spécification du nom du fichier d'exécution
Spécifiez le nom du dossier qui contient l'ensemble de scripts à exécuter à distance avec script_folder. En outre, dans le script, spécifiez le nom du fichier de script qui sera l'entrée pour l'exécution à distance.
Lors d'une exécution à distance, tous les fichiers et sous-répertoires de script_folder sont transmis au conteneur, veillez donc à ne pas placer de fichiers inutiles.
Le fichier d'entrée est récupéré par script1.1.py, il n'est donc pas spécifié ici.
src = ScriptRunConfig(source_directory='script_folder', script='script1.1.py',
run_config = run_config)
Exécutez l'expérience
nom_expérience est utilisé comme nom d'affichage pour l'expérience.
experiment_name = 'ScriptRunConfig2'
experiment = Experiment(workspace = workspace, name = experiment_name)
run = experiment.submit(config=src)
run
Cette cellule se termine de manière asynchrone, donc si vous voulez attendre qu'elle se termine, exécutez l'instruction suivante.
```python
%%time
run.wait_for_completion(show_output=True)
```
script1.1.py
Le contenu d'un script exécuté à distance.
Get_context () transmet les informations d'exécution du script appelant. Les informations de l'expérience, qui sont les informations d'attribut de cette exécution, sont extraites et les informations de l'espace de travail, qui sont les informations d'attribut de l'expérience, sont extraites. Une fois que vous connaissez les informations de l'espace de travail, vous pouvez enregistrer l'ensemble de données dans l'espace de travail avec get_by_name. Ce get_by_name est écrit dans le même format qui apparaît dans l'onglet «Utiliser» de l'ensemble de données enregistré dans Azure Machine Learning Studio.
Ce script écrit enfin le fichier dans le dossier des sorties. Par défaut, ce dossier de sorties est créé sans aucune action et peut être référencé après exécution à partir des "Sorties et journaux" de l'expérience.
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)
[Référence] Contenu de HelloWorld.txt
Le fichier CSV utilisé ici est simple.
0,Hello World
1,Hello World
2,Hello World
Qu'est-ce que tu penses. Il existe plusieurs variantes de l'entrée / sortie du SDK Azure ML Python. La prochaine fois, je voudrais présenter la sortie.
Qu'est-ce que le SDK Azure Machine Learning pour Python azureml.core.experiment.Experiment class - Microsoft Docs Utilisation du SDK 1 Azure ML Python: Utilisation d'un ensemble de données comme entrée - Partie 1 Utilisation d'Azure ML Python SDK 3: exportation de la sortie vers le stockage Blob - Partie 1 [Utilisation d'Azure ML Python SDK 4: Exporter la sortie vers le stockage Blob - Partie 2] (https://qiita.com/notanaha/items/655290670a83f2a00fdc)
Recommended Posts