Experiment クラス
Azure Machine Learning で実験を作成および操作するためのメイン エントリ ポイントを表します。
実験とは、複数のモデルの実行を表す試用版のコンテナーです。
実験コンストラクター。
- 継承
-
azureml._logging.chained_identity.ChainedIdentityExperimentazureml.core._portal.HasExperimentPortalExperiment
コンストラクター
Experiment(workspace, name, _skip_name_validation=False, _id=None, _archived_time=None, _create_in_cloud=True, _experiment_dto=None, **kwargs)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
実験を含むワークスペース オブジェクト。 |
name
必須
|
新しい実験名。 |
kwargs
必須
|
キーワード引数の辞書。 |
workspace
必須
|
実験を含むワークスペース オブジェクト。 |
name
必須
|
新しい実験名。 |
kwargs
必須
|
キーワード引数の辞書。 |
_skip_name_validation
|
規定値: False
|
_id
|
規定値: None
|
_archived_time
|
規定値: None
|
_create_in_cloud
|
規定値: True
|
_experiment_dto
|
規定値: None
|
注釈
Azure Machine Learning の "実験" は、ユーザーの "仮説" を検証するために使用される "試行" のコレクションを表します。
Azure Machine Learning では、実験は Experiment クラスによって表され、試行は Run クラスによって表されます。
ワークスペースから実験を取得または作成するには、実験名を使用して実験を要求します。 実験名の先頭は英字または数字で、3 から 36 文字の長さである必要があります。使用できるのは、英字、数字、アンダースコア、ダッシュのみです。
experiment = Experiment(workspace, "MyExperiment")
ワークスペースで実験が見つからない場合は、新しい実験が作成されます。
実験の試行を実行する方法は 2 つあります。 Jupyter Notebook で対話的に実験を行う場合は、start_logging を使用します。ソース コードまたは他の種類の構成済み試行から実験を送信する場合は、submit を使用します
どちらのメカニズムでも、Run オブジェクトが作成されます。 対話型のシナリオでは、log などのログ記録メソッドを使用して、試行レコードに測定値とメトリックを追加します。 構成済みシナリオでは、get_status などの状態メソッドを使用して、実行に関する情報を取得します。
どちらの場合も、get_metrics のようなクエリ メソッドを使用して、試行の測定値とメトリックの現在の値 (存在する場合) を取得できます。
メソッド
archive |
実験をアーカイブします。 |
delete |
ワークスペース内の実験を削除します。 |
from_directory |
(非推奨) 指定されたパスから実験を読み込みます。 |
get_docs_url |
このクラスのドキュメントへの URL。 |
get_runs |
この実験の実行ジェネレーターを逆時系列順に返します。 |
list |
ワークスペース内の実験の一覧を返します。 |
reactivate |
アーカイブされた実験を再アクティブ化します。 |
refresh |
クラウドから最新バージョンの実験を返します。 |
remove_tags |
指定されたタグを実験から削除します。 |
set_tags |
実験で一連のタグを追加または変更します。 辞書に渡されないタグは変更されません。 |
start_logging |
対話型ログ セッションを開始し、指定された実験で対話型実行を作成します。 |
submit |
実験を送信し、作成されたアクティブな実行を返します。 |
tag |
文字列キーと文字列値 (省略可能) を使用して実行にタグを付けます。 |
archive
実験をアーカイブします。
archive()
注釈
アーカイブ後、実験は既定では一覧表示されません。 アーカイブされた実験に書き込もうとすると、同じ名前の新しいアクティブな実験が作成されます。 アーカイブされた実験は、同じ名前を持つ別のアクティブな実験がない限り、reactivate を呼び出すことで復元できます。
delete
ワークスペース内の実験を削除します。
static delete(workspace, experiment_id)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
実験が属するワークスペース。 |
experiment_id
必須
|
削除する実験の実験 ID。 |
from_directory
(非推奨) 指定されたパスから実験を読み込みます。
static from_directory(path, auth=None)
パラメーター
名前 | 説明 |
---|---|
path
必須
|
実験の構成ファイルが含まれるディレクトリ。 |
auth
|
auth オブジェクト。 None の場合は、既定の Azure CLI 資格情報が使用されるか、API によって資格情報の入力が求められます。 規定値: None
|
戻り値
型 | 説明 |
---|---|
実験を返します |
get_docs_url
get_runs
この実験の実行ジェネレーターを逆時系列順に返します。
get_runs(type=None, tags=None, properties=None, include_children=False)
パラメーター
名前 | 説明 |
---|---|
type
|
返された実行ジェネレーターを、指定された種類でフィルター処理します。 実行の種類の作成については、add_type_provider を参照してください。 規定値: None
|
tags
|
"tag" または {"tag": "value"} で実行をフィルター処理します。 規定値: None
|
properties
|
"property" または {"property": "value"} で実行をフィルター処理 規定値: None
|
include_children
|
既定では、最上位レベルの実行のみが取得されます。 すべての実行を一覧表示するには、true に設定します。 規定値: False
|
戻り値
型 | 説明 |
---|---|
指定されたフィルターに一致する実行の一覧。 |
list
ワークスペース内の実験の一覧を返します。
static list(workspace, experiment_name=None, view_type='ActiveOnly', tags=None)
パラメーター
名前 | 説明 |
---|---|
workspace
必須
|
実験を一覧表示するワークスペース。 |
experiment_name
|
(省略可能) 実験をフィルター処理するための名前。 規定値: None
|
view_type
|
(省略可能) アーカイブされた実験をフィルター処理または包含するための列挙値。 規定値: ActiveOnly
|
tags
|
(省略可能) 実験をフィルター処理するためのタグ キー、またはタグ キーと値のペアの辞書。 規定値: None
|
戻り値
型 | 説明 |
---|---|
実験オブジェクトの一覧。 |
reactivate
アーカイブされた実験を再アクティブ化します。
reactivate(new_name=None)
パラメーター
名前 | 説明 |
---|---|
new_name
必須
|
サポートされなくなりました |
注釈
アーカイブされた実験は、同じ名前を持つ別のアクティブな実験がない場合にのみ再アクティブ化できます。
refresh
クラウドから最新バージョンの実験を返します。
refresh()
remove_tags
set_tags
実験で一連のタグを追加または変更します。 辞書に渡されないタグは変更されません。
set_tags(tags)
パラメーター
名前 | 説明 |
---|---|
tags
必須
|
実験オブジェクトに格納するタグ |
start_logging
対話型ログ セッションを開始し、指定された実験で対話型実行を作成します。
start_logging(*args, **kwargs)
パラメーター
名前 | 説明 |
---|---|
experiment
必須
|
実験。 |
outputs
必須
|
オプションで、追跡するディレクトリを出力します。出力がない場合は、False を渡します。 |
snapshot_directory
必須
|
(省略可能) スナップショットを作成するディレクトリ。 None に設定すると、スナップショットは作成されません。 |
args
必須
|
|
kwargs
必須
|
|
戻り値
型 | 説明 |
---|---|
開始された実行を返します。 |
注釈
start_logging では、Jupyter Notebook などのシナリオで使用するための対話型の実行が作成されます。 セッション中にログに記録されるすべてのメトリックは、実験の実行レコードに追加されます。 出力ディレクトリが指定されている場合、実行の完了時にそのディレクトリの内容が実行アーティファクトとしてアップロードされます。
experiment = Experiment(workspace, "My Experiment")
run = experiment.start_logging(outputs=None, snapshot_directory=".", display_name="My Run")
...
run.log_metric("Accuracy", accuracy)
run.complete()
Note
run_id は実行ごとに自動的に生成され、実験内で一意です。
submit
実験を送信し、作成されたアクティブな実行を返します。
submit(config, tags=None, **kwargs)
パラメーター
名前 | 説明 |
---|---|
config
必須
|
送信する構成。 |
tags
|
送信する実行に追加するタグ ({"tag": "value"})。 規定値: None
|
kwargs
必須
|
構成に関する送信関数で使用される追加のパラメーター。 |
戻り値
型 | 説明 |
---|---|
1 つの実行。 |
注釈
送信とは、ローカルまたはリモートのハードウェアで試行を実行する、Azure Machine Learning プラットフォームへの非同期呼び出しのことです。 構成に応じて、送信によって実行環境が自動的に準備されたり、コードが実行されたり、ソース コードと結果が実験の実行履歴にキャプチャされたりします。
実験を送信するには、まず実験の実行方法を記述する構成オブジェクトを作成する必要があります。 構成は、必要な試行の種類によって異なります。
ローカル コンピューターから実験を送信する方法の例を次に示します。
from azureml.core import ScriptRunConfig
# run a trial from the train.py code in your current directory
config = ScriptRunConfig(source_directory='.', script='train.py',
run_config=RunConfiguration())
run = experiment.submit(config)
# get the url to view the progress of the experiment and then wait
# until the trial is complete
print(run.get_portal_url())
run.wait_for_completion()
実行を構成する方法について詳しくは、構成の種類の詳細を参照してください。
azureml.train.automl.automlconfig.AutoMLConfig
azureml.pipeline.core.Pipeline
azureml.pipeline.core.PublishedPipeline
azureml.pipeline.core.PipelineEndpoint
Note
トレーニングの実行を送信すると、トレーニング スクリプトが含まれるディレクトリのスナップショットが作成されて、コンピューティング先に送信されます。 スナップショットは、ご利用のワークスペースにも実験の一部として保存されます。 ファイルを変更して実行を再度送信すると、変更したファイルのみがアップロードされます。
スナップショットにファイルが含まれないようにするには、.gitignore または .amlignore ファイルをディレクトリに作成して、そこにそれらのファイルを追加してください。 .amlignore ファイルでは、.gitignore ファイルと同じ構文とパターンが使用されます。 両方のファイルが存在する場合、.amlignore ファイルが優先されます。
詳細については、「スナップショット」を参照してください。
tag
文字列キーと文字列値 (省略可能) を使用して実行にタグを付けます。
tag(key, value=None)
パラメーター
名前 | 説明 |
---|---|
key
必須
|
タグ キー |
value
必須
|
タグの値 (省略可能) |
注釈
実験のタグは、文字列キーと文字列値を使用して辞書に格納されます。 タグは、設定、更新、削除できます。 タグはユーザー向けであり、通常は実験のコンシューマーのための重要な情報が含まれます。
experiment.tag('')
experiment.tag('DeploymentCandidate')
experiment.tag('modifiedBy', 'Master CI')
experiment.tag('modifiedBy', 'release pipeline') # Careful, tags are mutable