トレーニングメトリクスの定義 - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

トレーニングメトリクスの定義

SageMaker は、トレーニングジョブログを自動的に解析し、トレーニングメトリクスを に送信します CloudWatch。デフォルトでは、 はSageMaker ジョブとエンドポイントメトリクス にリストされているシステムリソース使用率メトリクス SageMaker を送信します。ログ SageMaker を解析し、独自のアルゴリズムのトレーニングジョブから にカスタムメトリクスを送信する場合は CloudWatch、 SageMaker トレーニングジョブリクエストを設定するときにメトリクスと正規表現の名前を渡すことでメトリクス定義を指定する必要があります。

SageMaker コンソール、SageMaker Python SDK、または低レベル を使用して、追跡するメトリクスを指定できます SageMaker API。

独自のアルゴリズムを使用している場合は、次の手順に従います。

  • 取得するメトリクスがアルゴリズムによって必ずログに書き込まれるようにします。

  • ログを正確に検索して、 に送信するメトリクスの値を取得する正規表現を定義します 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:errorvalidation: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 PythonSDK」を参照してください GitHub。

コンソールを使用して SageMakerメトリクスを定義する

トレーニングジョブの作成時に SageMaker コンソールでアルゴリズムソースとして独自のアルゴリズムコンテナをECRオプションで選択する場合は、メトリクスセクションにメトリクス定義を追加します。次のスクリーンショットは、サンプルメトリクス名とその対応する正規表現を追加した後の状態を示しています。

コンソールのアルゴリズムオプションの例。

低レベルを使用してメトリクスを定義する SageMaker API

CreateTrainingJob オペレーションに渡すAlgorithmSpecification入力パラメータの MetricDefinitionsフィールドにメトリクス名と正規表現のリストを指定 CloudWatch して、送信先のメトリクスを定義します。例えば、 train:errorvalidation: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