クラウド上でコードを実行する
#
実験と実行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
などのデータ型に加えて他の参照型のデータも使えます。
コマンドライン引数の詳細: データセットの使用
sys.argv
#
引数の例 1: この例では 2 つの引数をスクリプトに渡します。コンソールから実行する場合:
これをScriptRunConfig
の中のarguments
を使って表現する場合:
これらの引数はスクリプトの中で通常のコマンドライン引数と同じように使えます:
argparse
#
引数の例 2: この例では 2 つの名前付きの引数をスクリプトに渡します。コンソールから実行する場合:
これをScriptRunConfig
の中のarguments
を使って表現する場合:
これらの引数はスクリプトの中で通常のコマンドライン引数と同じように使えます:
#
コマンド明示的に実行するコマンドを与えることもできます。
この例はcommand
引数の代わりにscript='script.py'
という引数をするということと同じです。
このオプションは多くの柔軟性を与えます。例えば:
環境変数の設定: よくある例:
セットアップスクリプトの実行: データのダウンロードや環境変数の設定を行うセットアップスクリプトの実行。
#
データセットの使用#
引数からScriptRunConfig
に引数としてデータセットを渡します。
この例ではscript.py
から参照可能な実行に対してデータセットがマウントされます。
#
実行#
インタラクティブJupyter Notebookなどを使う場合のインタラクティブ設定
#
例 : Jupyter Notebookよくあるユースケースはノートブック内で学習中のモデルのログをインタラクティブに表示する場合です。
Azure ML Studio へのリンクからリアルタイムでメトリックのログや実行を確認できます。
#
コンテキストの取得Azrue ML 上で実行されているコードは実行
に関連付けられます。サブミットされたコードは実行
からアクセスすることができます。
#
例: 実行中のコードのメトリックをログに保存するよくあるユースケースはトレーニングスクリプト内でのメトリックのログです。
このコードが Azrue ML (例えばScriptRunConfig
により) にサブミットされた時、このコードは関連付けられている実行
にメトリックのログを保存します。
詳細: メトリック