【Azure AutoML】Python SDK V1 / V2で学習モデルのmetricsを取得する方法

はじめに

Azure AutoMLでトレーニングしたモデルのmetricsをPython SDK v1 / v2の2パターンで取得してみます。

モデル自体はSDK V2でトレーニングしたものを使います。
トレーニングについては過去の記事にあるので、ぜひご参照ください。

タスク

環境

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

Python SDK V1のmetrics取得する方法

SDK V2でトレーニングしたモデルからmetricsを取得します。

V1の場合は、get_metrics関数を使うと簡単にできます。

結果

V2で作ったモデルを無理やりV1でmetrics取得しようとしているせいか、Warningがめちゃくちゃ出ますが、次のようにmetricsが色々返ってきました。

最後にTypeErrorも出ますが、なんとかmetricsを読み込むことはできました!!

続いて、素直にV2からmetricsを取得してみます。

Python SDK V2の場合

SDK V2の場合はMLFlowを使います。
参考サイト:

まずはmlflowとazureml-mlflowをインストールします。

最初にワークスペースへの接続をし、MLFlowで実験を追跡するためにトラッキングURLを取得します。
その次にトレーニングしたジョブ(親ジョブ)からベストモデルを取得し、metricsを得るという流れになります。

ワークスペースへの接続・ジョブIDを入力するだけで実行できます。

結果

親ジョブのmetrics・ベストモデルのmetricsが返ってきました。

親ジョブ・ベストモデルのmetricsともに取得することができました。
ここからmetricsだけ取り出すには、下記をコードの最後に貼り付けます。

結果はこうなりました。

この記事を書いた人

azure-recipe-user