注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

API: モデル実験

モデル実験のPython APIは、実験にメトリクスとハイパーパラメータを書き込むための一連のメソッドを提供します。このページには、palantir_models.experimentsパッケージで利用可能な関数とクラスに関する情報が含まれています。

palantir_models.experiments.Experiment

モデルトレーニング実験を追跡するためのクラス。実験は任意のModelOutputクラスから作成できます。

Copied!
1 model_output.create_experiment(name="experiment-name")
関数説明
log_param(key, value)単一のパラメータを実験に記録します。
log_params(parameter_map)一連のパラメータを実験に記録します。
log_metric(name, value, step)指定されたシリーズの下で実験にメトリック値を記録します。
log_metrics(metric_values, step)指定されたシリーズの下で一連のメトリック値を実験に記録します。

palantir_models.experiments.ErrorHandlerType

実験コードを実行する際にエラーをどのように処理するかを制御するための列挙型。特に、メトリクスの書き込み時のネットワークエラーや実験サイズのオーバーフローなど、ユーザーコード以外によって引き起こされるエラーを管理します。

バリアント説明
ErrorHandlerType.FAILすべてのエラーで失敗します。エラーを呼び出し元に再発生させます。
ErrorHandlerType.WARN最初のエラーで警告し、その後は抑制します。
ErrorHandlerType.SUPPRESS何もログに記録しません。

実験を作成する際に、希望するエラーハンドラータイプをModelOutput.create_experimentに渡すことができます。以下に例を示します:

Copied!
1 2 from palantir_models.experiments import ErrorHandlerType model_output.create_experiment(name="mnist-experiment", error_handler_type=ErrorHandlerType.WARN)

Experiment.log_param

palantir_models.experiments.Experiment.log_param(key: str, value: Union[bool, date, datetime, float, int, str])

  • 指定されたパラメータvalueを指定されたkeyにログします。
  • パラメータは同じパラメータキーにログすることで上書きできます。
Copied!
1 experiment.log_param(key="learning_rate", value=1e-3)

パラメータ

  • key: str
    • 書き込むパラメータの名前。
  • value: Union[bool, date, datetime, float, int, str]
    • パラメータに書き込む値。

Experiment.log_params

palantir_models.experiments.Experiment.log_params(parameter_map: Dict[str, Union[bool, date, datetime, float, int, str]])

Copied!
1 2 3 4 experiment.log_params(parameter_map={ "learning_rate": 1e-3, "model_type": "CNN" })

パラメータ

  • parameter_map: Dict[str, Union[bool, date, datetime, float, int, str]]
    • パラメータ名とパラメータ値のマッピング。

Experiment.log_metric

palantir_models.experiments.Experiment.log_metric(metric_name: str, metric_value: float, step: Optional[int] = None)

  • メトリック値をシリーズにログします。
  • シリーズが存在しない場合(まだログされていない場合)、新しいシリーズが作成されます。
  • stepが提供されている場合、そのステップでログしようとします。ステップがすでにログされている場合、エラーが発生します。
  • stepが提供されていない場合、シリーズの現在のステップは自動的に1ずつインクリメントされます。
Copied!
1 2 experiment.log_metric(metric_name="train/loss", metric_value=1.5) experiment.log_metric(metric_name="train/loss", metric_value=0.9) # ステップは自動的にインクリメントされます

パラメータ

  • metric_name: str
    • 値を書き込むメトリックシリーズの名前。
  • metric_value: float
    • 書き込む値。
  • step: Optional[int]
    • 書き込むオプションのステップ。提供されたステップが現在のステップよりも小さい場合、エラーが発生します。ステップが提供されていない場合、ステップは自動的にインクリメントされます。

Experiment.log_metrics

palantir_models.experiments.Experiment.log_metrics(values: Dict[str, float], step: Optional[int] = None)

  • log_metricのバッチ版。
  • 提供されたすべての値を同じステップでそれぞれのシリーズにログします。
  • シリーズが存在しない場合(まだログされていない場合)、新しいシリーズが作成されます。
  • stepが提供されている場合、そのステップでログしようとします。ステップがすでにどのシリーズでもログされている場合、エラーが発生します。
  • stepが提供されていない場合、すべてのシリーズの現在のステップは独立して1ずつ自動インクリメントされます。
Copied!
1 2 3 4 experiment.log_metrics(values={ "train/loss": 1.5, "train/acc": 0.7 })

パラメータ

  • values: Dict[str, float]
    • メトリック名とメトリック値のマッピング。
  • step: Optional[int]
    • 書き込むオプションのステップ。提供されたステップが書き込まれているシリーズの現在のステップよりも小さい場合、エラーが発生します。ステップが提供されていない場合、各シリーズのステップは独立して自動的にインクリメントされます。