翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
TensorBoard で Amazon SageMaker Debugger 出力テンソルを視覚化する
注記
Amazon SageMaker デバッガーは新規顧客に公開されなくなりました。既存のお客様は、サービスを通常どおり引き続き使用できます。 はデバッガーのセキュリティと可用性の向上に AWS 引き続き投資しますが、新機能を導入する予定はありません。詳細については、「デバッガーの可用性の変更」を参照してください。
重要
このページは非推奨となり、代わりに Amazon SageMaker AI with TensoBoard の使用が推奨されています。TensorBoard の包括的なエクスペリエンスが SageMaker トレーニングと統合されており、SageMaker AI ドメインのアクセス制御機能も使用できます。詳細についてはAmazon SageMaker AI の TensorBoardを参照してください。
SageMaker デバッガーを使って、TensorBoard と互換性のある出力テンソルファイルを作成します。ファイルをロードして TensorBoard で視覚化し、SageMaker トレーニングジョブを分析します。デバッガーは、TensorBoard と互換性のある出力テンソルファイルを自動的に生成します。出力テンソルを保存するためにカスタマイズしたフック設定に対して、デバッガーには、スカラーサマリー、分布、ヒストグラムを作成し、TensorBoard にインポートできる柔軟性があります。
これを有効にするには、DebuggerHookConfig と TensorBoardOutputConfig オブジェクトを ModelTrainer に渡します。
次の手順では、スカラー、重み、バイアスを、TensorBoard で視覚化できる完全なテンソル、ヒストグラム、分布として保存する方法について説明します。デバッガーはこれらをトレーニングコンテナのローカルパス (デフォルトパスは /opt/ml/output/tensors) に保存し、デバッガー出力設定オブジェクトで渡された Amazon S3 のロケーションに同期させます。
デバッガーを使って TensorBoard 互換の出力テンソルファイルを保存するには
-
デバッガーの
TensorBoardOutputConfigクラスを使って、TensorBoard 出力を保存するようにtensorboard_output_config設定オブジェクトを設定します。s3_output_pathパラメータには、現在の SageMaker AI セッションのデフォルトの S3 バケットか、任意の S3 バケットを指定します。この例では、container_local_output_pathパラメータを追加せずに、デフォルトのローカルパス/opt/ml/output/tensorsに設定します。from sagemaker.core.debugger import TensorBoardOutputConfig from sagemaker.core.helper.session_helper import Session bucket = Session().default_bucket() tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://{}'.format(bucket) )詳細については、Amazon SageMaker Python SDK
のデバッガー TensorBoardOutputConfigAPI を参照してください。 -
デバッガーフックを設定し、フックパラメータ値をカスタマイズします。例えば、次のコードは、すべてのスカラー出力をトレーニングフェーズでは 100 ステップごと、検証フェーズで 10 ステップごとに保存し、
weightsパラメータを 500 ステップごと (テンソルコレクションを保存するためのデフォルトのsave_interval値は 500)、biasパラメータをグローバルステップが 500 に達するまで 10 グローバルステップごとに保存するようデバッガーフックを設定します。from sagemaker.debugger import CollectionConfig, DebuggerHookConfig hook_config = DebuggerHookConfig( hook_parameters={ "train.save_interval": "100", "eval.save_interval": "10" }, collection_configs=[ CollectionConfig("weights"), CollectionConfig( name="biases", parameters={ "save_interval": "10", "end_step": "500", "save_histogram": "True" } ), ] )デバッガー設定 API の詳細については、Amazon SageMaker Python SDK
のデバッガー CollectionConfigAPI とDebuggerHookConfigAPI を参照してください。 -
設定オブジェクトを渡すデバッガーパラメータを使用して SageMaker AI ModelTrainer を構築します。次のサンプルテンプレートは、汎用 SageMaker AI ModelTrainer を作成する方法を示しています。この機能で使用できる ModelTrainer フレームワークは
TensorFlow、、PyTorch、および ですMXNet。from sagemaker.train import ModelTrainer model_trainer = ModelTrainer( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) model_trainer.train()model_trainer.train()メソッドはトレーニングジョブを開始し、デバッガーは出力テンソルファイルをデバッガー S3 出力パスと TensorBoard S3 出力パスにリアルタイムで書き込みます。出力パスを取得するには、次の ModelTrainer メソッドを使用します。-
デバッガー S3 出力パスには、
model_trainer.latest_job_debugger_artifacts_path()を使用します。 -
TensorBoard S3 出力パスには、
model_trainer.latest_job_tensorboard_artifacts_path()を使用します。
-
-
トレーニングが完了したら、保存された出力テンソルの名前をチェックします。
from smdebug.trials import create_trial trial = create_trial(model_trainer.latest_job_debugger_artifacts_path()) trial.tensor_names() -
Amazon S3 で TensorBoard の出力データをチェックします。
tensorboard_output_path=model_trainer.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/ -
TensorBoard の出力データをノートブックインスタンスにダウンロードします。たとえば、次の AWS CLI コマンドは、ノートブックインスタンスの現在の作業ディレクトリの
/logs/fitに TensorBoard ファイルをダウンロードします。!aws s3 cp --recursive {tensorboard_output_path}./logs/fit -
ファイルディレクトリを TAR ファイルに圧縮して、ローカルマシンにダウンロードします。
!tar -cf logs.tar logs -
TensorBoard TAR ファイルをダウンロードしてデバイス上のディレクトリに抽出し、Jupyter ノートブックサーバーを起動し、新しいノートブックを開いて、TensorBoard アプリケーションを実行します。
!tar -xf logs.tar %load_ext tensorboard %tensorboard --logdir logs/fit
次のアニメーションスクリーンショットは、ステップ 5 ~ 8 を示しています。これは、デバッガー TensorBoard TAR ファイルをダウンロードし、このファイルをローカルデバイス上の Jupyter ノートブックにロードする方法を示しています。