翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トレーニングメトリクスの定義
SageMaker は、トレーニングジョブログを自動的に解析し、トレーニングメトリクスを に送信します CloudWatch。デフォルトでは、 はSageMaker ジョブとエンドポイントメトリクス にリストされているシステムリソース使用率メトリクス SageMaker を送信します。ログ SageMaker を解析し、独自のアルゴリズムのトレーニングジョブから にカスタムメトリクスを送信する場合は CloudWatch、 SageMaker トレーニングジョブリクエストを設定するときにメトリクスと正規表現の名前を渡すことでメトリクス定義を指定する必要があります。
SageMaker コンソール、SageMaker Python SDK
独自のアルゴリズムを使用している場合は、次の手順に従います。
-
取得するメトリクスがアルゴリズムによって必ずログに書き込まれるようにします。
-
ログを正確に検索して、 に送信するメトリクスの値を取得する正規表現を定義します CloudWatch。
例えば、アルゴリズムによって次のようなトレーニングエラーおよび検証エラーのメトリクスが発行されるとします。
Train_error=0.138318; Valid_error=0.324557;
でこれらのメトリクスの両方をモニタリングする場合 CloudWatch、メトリクス定義のディクショナリは次の例のようになります。
[ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ]
上記例で定義されている train:error
メトリクスの正規表現では、正規表現の最初の部分で「Train_error=」に一致するテキストを検索し、(.*?);
で、最初のセミコロン文字が現れるまで、すべての文字を取得します。この正規表現では、括弧内のテキストを取得するよう指示します。.
は任意の文字、*
は 0 文字以上の文字、?
は、;
文字の最初のインスタンスまでのみ取得されます。
SageMaker Python を使用してメトリクスを定義する SDK
Estimator
オブジェクトを初期化するときに、メトリクス名と正規表現のリストをmetric_definitions
引数として指定 CloudWatch して、送信先のメトリクスを定義します。例えば、 train:error
と validation:error
メトリクスの両方を でモニタリングする場合 CloudWatch、Estimator
初期化は次の例のようになります。
import sagemaker from sagemaker.estimator import Estimator estimator = Estimator( image_uri="
your-own-image-uri
", role=sagemaker.get_execution_role(), sagemaker_session=sagemaker.Session(), instance_count=1
, instance_type='ml.c4.xlarge
', metric_definitions=[ {'Name': 'train:error', 'Regex': 'Train_error=(.*?);'}, {'Name': 'validation:error', 'Regex': 'Valid_error=(.*?);'} ] )
Amazon SageMaker Python SDK
コンソールを使用して SageMakerメトリクスを定義する
トレーニングジョブの作成時に SageMaker コンソールでアルゴリズムソースとして独自のアルゴリズムコンテナをECRオプションで選択する場合は、メトリクスセクションにメトリクス定義を追加します。次のスクリーンショットは、サンプルメトリクス名とその対応する正規表現を追加した後の状態を示しています。
低レベルを使用してメトリクスを定義する SageMaker API
CreateTrainingJob
オペレーションに渡すAlgorithmSpecification
入力パラメータの MetricDefinitions
フィールドにメトリクス名と正規表現のリストを指定 CloudWatch して、送信先のメトリクスを定義します。例えば、 train:error
と validation:error
メトリクスの両方を でモニタリングする場合 CloudWatch、 AlgorithmSpecification
は次の例のようになります。
"AlgorithmSpecification": { "TrainingImage":
your-own-image-uri
, "TrainingInputMode": "File", "MetricDefinitions" : [ { "Name": "train:error", "Regex": "Train_error=(.*?);" }, { "Name": "validation:error", "Regex": "Valid_error=(.*?);" } ] }
低レベル を使用してトレーニングジョブを定義して実行する方法の詳細については SageMaker API、「」を参照してくださいCreateTrainingJob
。