翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
TensorBoard 出力データを収集するためのトレーニングジョブを準備する
での機械学習の一般的なトレーニングジョブ SageMaker は、トレーニングスクリプトの準備と SageMaker Python の SageMaker 推定器オブジェクトの設定という 2 つの主要なステップで構成されますSDK。このセクションでは、 SageMaker トレーニングジョブから TensorBoard互換データを収集するために必要な変更について説明します。
前提条件
次のリストは、 SageMaker で の使用を開始するための前提条件を示しています TensorBoard。
-
AWS アカウントVPCで Amazon でセットアップされる SageMaker ドメイン。
ドメインの設定手順については、「クイックセットアップ を使用した Amazon SageMaker ドメインへのオンボード」を参照してください。また、 TensorBoard 上の にアクセスするには、個々のユーザーのドメインユーザープロファイルを追加する必要があります SageMaker。詳細については、「ユーザープロファイルの追加」を参照してください。
-
次のリストは、 TensorBoard で を使用するための最小アクセス許可セットです SageMaker。
-
sagemaker:CreateApp
-
sagemaker:DeleteApp
-
sagemaker:DescribeTrainingJob
-
sagemaker:Search
-
s3:GetObject
-
s3:ListBucket
-
ステップ 1: オープンソースの TensorBoard ヘルパーツールを使用してトレーニングスクリプトを変更する
収集する出力テンソルとスカラーを確認し、 TensorBoardX、 TensorFlow Summary Writer、 PyTorch Summary Writer、 SageMaker Debugger のいずれかのツールを使用してトレーニングスクリプトのコード行を変更します。
また、 TensorBoard データ出力パスをトレーニングコンテナのコールバックのログディレクトリ (log_dir
) として指定してください。
フレームワークごとのコールバックについて詳しくは、次のリソースを参照してください。
-
には PyTorch、torch.utils.tensorboard を使用しますSummaryWriter
。チュートリアル の TensorBoard 「 でのス PyTorch カラーの使用」セクションと「ログス カラー」セクションも参照してください。 PyTorch または、TensorBoardX Summary Writer を使用できます。 LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=torch.utils.tensorboard.writer.SummaryWriter(log_dir=LOG_DIR)
-
の場合 TensorFlow、 のネイティブコールバック TensorBoardtf.keras.callbacks を使用しますTensorBoard
。 LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=tf.keras.callbacks.TensorBoard( log_dir=LOG_DIR, histogram_freq=1)
-
を持つ Transformers では PyTorch、transformers.integrations を使用できますTensorBoardCallback
。 を持つトランスフォーマーの場合は TensorFlow、 を使用し
tf.keras.tensorboard.callback
、トランスフォーマーの keras コールバックに渡します。ヒント
別のコンテナのローカル出力パスを使用することもできます。ただし、 ではステップ 2: TensorBoard 出力設定を使用して SageMaker トレーニング推定器オブジェクトを作成する、ローカルパスを正常に検索し、 TensorBoard データを S3 出力バケットに保存 SageMaker するには、 のパスを正しくマッピングする必要があります。
-
SageMaker デバッガー Python ライブラリを使用してトレーニングスクリプトを変更する方法については、「」を参照してくださいフックを登録するトレーニングスクリプトの適応。
ステップ 2: TensorBoard 出力設定を使用して SageMaker トレーニング推定器オブジェクトを作成する
SageMaker フレームワーク推定器を設定するsagemaker.debugger.TensorBoardOutputConfig
ときは、 を使用します。この設定は、トレーニングコンテナ () にローカルパスを使用して TensorBoard データを保存するために指定した S3 バケットをAPIマッピングします/opt/ml/output/tensorboard
。モジュールのオブジェクトを推定器クラスの tensorboard_output_config
パラメータに渡します。次のコードスニペットは、 TensorBoard 出力設定パラメータを使用して TensorFlow 推定器を準備する例を示しています。
注記
この例では、 SageMaker Python を使用することを前提としていますSDK。低レベル を使用する場合は SageMaker API、 のリクエスト構文に以下を含める必要がありますCreateTrainingJobAPI。
"TensorBoardOutputConfig": { "LocalPath": "/opt/ml/output/tensorboard", "S3OutputPath": "
s3_output_bucket
" }
from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import TensorBoardOutputConfig # Set variables for training job information, # such as s3_out_bucket and other unique tags. ... LOG_DIR="/opt/ml/output/tensorboard" output_path = os.path.join( "
s3_output_bucket
", "sagemaker-output
", "date_str
", "your-training_job_name
" ) tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output_path, 'tensorboard
'), container_local_output_path=LOG_DIR ) estimator = TensorFlow( entry_point="train.py
", source_dir="src
", role=role
, image_uri=image_uri
, instance_count=1
, instance_type="ml.c5.xlarge
", base_job_name="your-training_job_name
", tensorboard_output_config=tensorboard_output_config
, hyperparameters=hyperparameters
)
注記
はマッピングの SageMaker TensorBoard 出力設定と統合されていないため、 TensorBoard アプリケーションCreateHyperParameterTuningJob
APIはハイパーパラメータチューニングジョブをサポートしていません out-of-the-box。ハイパーパラメータチューニングジョブにアプリケーションを使用するには TensorBoard、トレーニングスクリプトで Amazon S3 にメトリクスをアップロードするためのコードを記述する必要があります。メトリクスが Amazon S3 バケットにアップロードされると、バケットを の TensorBoard アプリケーションにロードできます SageMaker。