クラウド上でコードを実行する
実験と実行#
Azure ML は機械学習コードのクラウド上での実行を支援するサービスです。実行は Azure ML にサブミットされたジョブの履歴をただ保存するだけではなく、リアルタイムで監視することもできる抽象レイヤーです。
- 実行: 一度のコード実行を表します。詳細: 実行
- 実験: 実験は
実行の軽量なコンテナです。実験は実行の Azure ML へのサブミットと追跡に使われます。
ワークスペースwsに実験を作成します。
ScriptRunConfig#
一般的に Azure ML ではScriptRunConfigを使って実行するコードの情報と実行のための設定情報をパッケージ化して、クラウド上にサブミットして実行します。
実行しようとしているコードが以下のディレクトリ構成だとします。
ScriptRunConfigを使ってscript.pyをクラウド上で実行するための設定:
ここで:
source_directory='source_directory': 実行するコードが存在するローカルディレクトリ。script='script.py': 実行する Python スクリプト。必ずしもsource_directoryのルートにある必要はない。compute_taget=target: 参照 コンピューティングターゲットenvironment: 参照 環境arguments: 参照 コマンドライン引数
このコードを Azure ML にサブミットする:
このコードはターミナル上にログストリームを出力するだけではなく、サブミットされた実行を Web 上で監視するためのリンクを出力します。(https://ml.azure.com)
コマンドライン引数#
スクリプトにコマンドライン引数を渡すにはScriptRunConfigの中にあるargumentsパラメータを使います。
引数は list 形式で指定します:
このとき引数は下記のコマンドライン引数のように渡されます:
名前付きの引数もサポートされます:
引数にはint、float、strなどのデータ型に加えて他の参照型のデータも使えます。
コマンドライン引数の詳細: データセットの使用
引数の例 1: sys.argv#
この例では 2 つの引数をスクリプトに渡します。コンソールから実行する場合:
これをScriptRunConfigの中のargumentsを使って表現する場合:
これらの引数はスクリプトの中で通常のコマンドライン引数と同じように使えます:
引数の例 2: argparse#
この例では 2 つの名前付きの引数をスクリプトに渡します。コンソールから実行する場合:
これをScriptRunConfigの中のargumentsを使って表現する場合:
これらの引数はスクリプトの中で通常のコマンドライン引数と同じように使えます:
コマンド#
明示的に実行するコマンドを与えることもできます。
この例はcommand引数の代わりにscript='script.py'という引数をするということと同じです。
このオプションは多くの柔軟性を与えます。例えば:
環境変数の設定: よくある例:
セットアップスクリプトの実行: データのダウンロードや環境変数の設定を行うセットアップスクリプトの実行。
データセットの使用#
引数から#
ScriptRunConfigに引数としてデータセットを渡します。
この例ではscript.pyから参照可能な実行に対してデータセットがマウントされます。
実行#
インタラクティブ#
Jupyter Notebookなどを使う場合のインタラクティブ設定
例 : Jupyter Notebook#
よくあるユースケースはノートブック内で学習中のモデルのログをインタラクティブに表示する場合です。
Azure ML Studio へのリンクからリアルタイムでメトリックのログや実行を確認できます。

コンテキストの取得#
Azrue ML 上で実行されているコードは実行に関連付けられます。サブミットされたコードは実行からアクセスすることができます。
例: 実行中のコードのメトリックをログに保存する#
よくあるユースケースはトレーニングスクリプト内でのメトリックのログです。
このコードが Azrue ML (例えばScriptRunConfigにより) にサブミットされた時、このコードは関連付けられている実行にメトリックのログを保存します。
詳細: メトリック