はじめに
今回は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の確認
まずはこちらの二項分類のパイプラインを実行してみます!
学習データを後からでも追加できるように、Import Dataコンポーネントを入力データとしました。
そして、Export DataをScore ModelとEvaluate Modelの下にそれぞれ追加しました。
これは訓練したModelから得られた予測結果とその評価を取り出すためです。
入力データ、出力データともにパイプラインパラメータでパスの設定を行ったら実行をしてみます。
(パイプラインパラメータの設定方法などは前回の記事をご覧ください。)
実行が終わり、ジョブで確認していくと状態が「完了」になります。
PythonでStatusを確認
それでは今行ったStatusのチェックを今度はPythonから行ってみましょう!
まずは
1 2 |
az login |
でAzure CLIにログインしたらこちらのコードを実行してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
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()) |
experiment
のname
のところは
ジョブを実行するときに入力する、実験の名前を入れます。
そしてジョブIDについては「ジョブの概要」を開いたときに表示される
こちらの「ジョブ名(実行ID)」を入れます。
これで実行したら、
print(Experiment.list(workspace=ws))
Experimentクラスのlist関数で、現在のワークスペースにある実験のリストが表示され、
Experimentクラスの詳細はこちらを参照ください。
print(run.get_details())
Runクラスのget_details関数でJSON形式の結果が返ってきます。
Runクラスの詳細はこちらを参照ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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
から完了したかどうかを確認できる