Le contenu de cette heure est presque le même que le précédent Utilisation d'Azure ML Python SDK 3: Writing the output to Blob storage-Part 1, et l'entrée est La différence est qu'il devient un dossier au lieu d'un fichier. Ce n'est pas intéressant, je vais donc essayer de joindre un échantillon qui transmet en fait certains packages au conteneur.
Cette fois, nous allons spécifier un dossier au lieu d'un fichier spécifique en entrée, donc on suppose qu'il y a plusieurs fichiers sous work2 / input / dans la figure ci-dessous. À part cela, vous avez toujours des machines virtuelles distantes et des notebooks Jupyter.
--Machine virtuelle distante (ci-après «cluster informatique» utilisant la terminologie Azure ML)
Pour vérifier la version du SDK Python
import azureml.core
print("SDK version:", azureml.core.VERSION)
La structure des dossiers de Notebook est la même qu'auparavant.
script2.2.py collecte les noms de fichiers des fichiers enregistrés dans work2 / input / dans un fichier CSV et les enregistre dans work2 / output / output1 /. Le but de la définition du sous-dossier output1 est de l'utiliser comme exemple de création de dossier avec script2.2.py.
La procédure pour HelloWorld2.2.ipynb est la même que la dernière fois et est la suivante.
Nous continuerons à suivre les étapes comme avant.
Chargez le package
Chargez le package.
from azureml.core import Workspace, Experiment, Dataset, Datastore, ScriptRunConfig, Environment
from azureml.data import OutputFileDatasetConfig
from azureml.core.compute import ComputeTarget
from azureml.core.compute_target import ComputeTargetException
from azureml.core.conda_dependencies import CondaDependencies
workspace = Workspace.from_config()
Spécification d'un cluster informatique
Spécifiez le cluster de calcul.
aml_compute_target = "demo-cpucluster1" # <== 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écifiez les dossiers d'entrée et de sortie
demostore est le nom du magasin de données enregistré dans Azure ML Workspace. Vous transmettez le chemin du fichier à l'intérieur du conteneur BLOB de la banque de données à la classe de l'ensemble de données.
ds = Datastore(workspace, 'demostore')
input_data = Dataset.File.from_files(ds.path('work2/input/')).as_named_input('input_ds').as_mount()
output = OutputFileDatasetConfig(destination=(ds, 'work2/output'))
Spécification de l'environnement du conteneur
Comme mentionné au début, cette fois j'ai en fait spécifié quelques paquets. Il n'est décrit que comme un échantillon de la méthode de spécification et n'a pas de signification particulière.
myenv = Environment("myenv")
myenv.docker.enabled = True
myenv.python.conda_dependencies = CondaDependencies.create(pip_packages=[
'azureml-defaults',
'opencv-python-headless',
'numpy',
'pandas',
'tensorflow',
'matplotlib',
'Pillow'
])
Spécification du nom du fichier d'exécution
Spécifiez le nom du dossier contenant l'ensemble de scripts à exécuter à distance dans répertoire_source. 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 source_directory sont transmis au conteneur, veillez donc à ne pas placer de fichiers inutiles.
Passez input_data avec le nom d'argument datadir et la sortie avec le nom d'argument output.
Nous spécifions également le nom du cluster de calcul dans compute_target et transmettons myenv, qui instancie l'environnement, dans l'environnement.
src = ScriptRunConfig(source_directory='script_folder2',
script='script2.2.py',
arguments =['--datadir', input_data, '--output', output],
compute_target=aml_compute,
environment=myenv)
Exécutez l'expérience
Exécutez le script.
exp = Experiment(workspace, 'work-test')
run = exp.submit(config=src)
Cette cellule se termine de manière asynchrone, donc si vous souhaitez attendre la fin de l'exécution, exécutez l'instruction suivante.
```python
%%time
run.wait_for_completion(show_output=True)
```
script2.2.py
Le contenu d'un script exécuté à distance. Comme mentionné ci-dessus, combinez les noms de fichiers des fichiers enregistrés dans work2 / input / dans un bloc de données et enregistrez-les dans work2 / output / output1 / en tant que outfile.csv. output1 / est créé dans ce script.
import argparse
import os
import cv2
import numpy as np
import pandas as pd
import math
import tensorflow as tf
import PIL
import matplotlib
parser = argparse.ArgumentParser()
parser.add_argument('--datadir', type=str, help="data directory")
parser.add_argument('--output', type=str, help="output")
args = parser.parse_args()
print("Argument 1: %s" % args.datadir)
print("Argument 2: %s" % args.output)
print("cv2: %s" % cv2.__version__)
print("numpy: %s" % np.__version__)
print("pandas: %s" % pd.__version__)
print("tensorflow: %s" % tf.__version__)
print("matplotlib: %s" % matplotlib.__version__)
print("PIL: %s" % PIL.PILLOW_VERSION)
file_dict = {}
file_dict_df = pd.DataFrame([])
i = 0
for fname in next(os.walk(args.datadir))[2]:
print('processing', fname)
i += 1
infname = os.path.join(args.datadir, fname)
file_dict['num'] = i
file_dict['file name'] = fname
file_dict_df = file_dict_df.append([file_dict])
os.makedirs(args.output + '/output1', exist_ok=True)
outfname = os.path.join(args.output, 'output1/outfile.csv')
file_dict_df.to_csv(outfname, index=False, encoding='shift-JIS')
Qu'est-ce que tu penses. Vous pouvez comprendre le fonctionnement de base du SDK Azure ML Python dans 1-4 à l'aide du SDK Azure ML Python. La prochaine fois, j'aimerais vous présenter le pipeline.
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 2: Utilisation d'un ensemble de données comme entrée - Partie 2] (https://qiita.com/notanaha/items/30d57590c92b03bc953c) [Utilisation d'Azure ML Python SDK 3: Utilisation d'un ensemble de données comme entrée - Partie 1] (https://qiita.com/notanaha/items/d22ba02b9cc903d281b6) Azure/MachineLearningNotebooks
Recommended Posts