LoginSignup
1
1

More than 1 year has passed since last update.

Azure MLのジョブのStatusを確認する方法

Last updated at Posted at 2022-11-29

はじめに

今回はAzure MLで作成したデザイナーを実行し、ジョブが完了したかどうかをPythonから確認してみました。

開発環境

  • OS Windows 10(NVIDIA GTX 1650Ti,16GB RAM, i5-10300H CPU)
  • Visual Studio Code 1.73.1
  • Python 3.9

Azure ML上でジョブのStatusの確認

まずはこちらの二項分類のパイプラインを実行してみます!
image.png

学習データを後からでも追加できるように、Import Dataコンポーネントを入力データとしました。
そして、Export DataScore ModelEvaluate Modelの下にそれぞれ追加しました。
これは訓練したModelから得られた予測結果とその評価を取り出すためです。

入力データ、出力データともにパイプラインパラメータでパスの設定を行ったら実行をしてみます。
(パイプラインパラメータの設定方法などは前回の記事をご覧ください。)

image.png

実行が終わり、ジョブで確認していくと状態が「完了」になります。

PythonでStatusを確認

それでは今行ったStatusのチェックを今度はPythonから行ってみましょう!

まずは

az login

でAzure CLIにログインしたらこちらのコードを実行してみます。

status-check.py
from azureml.core import Workspace
from azureml.core.experiment import Experiment
from azureml.core.run import Run

ws = Workspace.from_config()
print(Experiment.list(workspace=ws))
experiment = Experiment(workspace=ws, name='<実験の名前>')
run = Run(experiment, "<ジョブID>")
print(run.get_details())

experimentnameのところは

azureml-job.png

ジョブを実行するときに入力する、実験の名前を入れます。

そしてジョブIDについては「ジョブの概要」を開いたときに表示される

azureml-id.png

こちらの「ジョブ名(実行ID)」を入れます。

これで実行したら、

print(Experiment.list(workspace=ws))
Experimentクラスのlist関数で、現在のワークスペースにある実験のリストが表示され、
Experimentクラスの詳細はこちらを参照ください。

image.png

print(run.get_details())
Runクラスのget_details関数でJSON形式の結果が返ってきます。

Runクラスの詳細はこちらを参照ください。

details.json
{
    'runId': '<実験ID>', 
    'status': 'Completed', 
    'startTimeUtc': '2022-11-29T08:40:26.563972Z', 
    'endTimeUtc': '2022-11-29T08:47:52.595374Z', 
    'services': {}, 
    'properties': {
                    'azureml.runsource': 'azureml.PipelineRun', 
                    'runSource': 'Designer', 
                    'runType': 'HTTP', 
                    'azureml.parameters': '{
                                            "Export_data_path":"/t-kawano-export-20221129",
                                            "Import_data_path":"UI/2022-11-29_082600_UTC/train.csv",
                                            "Score_data_path":"/t-kawano-score-20221129"
                                            }', 
                    'azureml.continue_on_step_failure': 'True', 
                    'azureml.continue_on_failed_optional_input': 'True', 
                    'azureml.pipelineComponent': 'pipelinerun', 
                    'stages': '{"Initialization":null,
                                "Execution":{
                                            "StartTime":"2022-11-29T08:40:26.99405+00:00",
                                            "EndTime":"2022-11-29T08:47:52.5223544+00:00",
                                            "Status":"Finished"
                                            }
                                }'
                    }, 
    'inputDatasets': [], 
    'outputDatasets': [], 
    'logFiles': {
                 'logs/azureml/executionlogs.txt': 'https://', 
                 'logs/azureml/stderrlogs.txt': 'https://', 
                 'logs/azureml/stdoutlogs.txt': 'https://'
                 }, 
    'submittedBy': 'アカウント名'
}

runIDで取得した実験のIDが表示されています。

そしてstatusのところでジョブが完了しているかどうかを確認できます。
今回は「Completed」となっているので、無事にジョブを実行できたようです。

また、propertiesのところでは設定したパイプラインパラメータなどが見られます。

まとめ

  • PythonからジョブのStatusをチェックしてみた
  • Runクラスのget_details()statusから完了したかどうかを確認できる
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1