翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
で Amazon SageMaker Debugger 出力テンソルを視覚化する TensorBoard
重要
このページは、Amazon に有利な形で SageMaker を廃止しています。これにより TensoBoard、 SageMaker トレーニングと統合された包括的な TensorBoard エクスペリエンスと SageMaker ドメインのアクセスコントロール機能が提供されます。詳細については、「TensorBoard Amazon で SageMaker」を参照してください。
SageMaker デバッガーを使用して、 と互換性のある出力テンソルファイルを作成します TensorBoard。ファイルをロードして、 で視覚化 TensorBoard し、 SageMaker トレーニングジョブを分析します。デバッガーは、 と互換性のある出力テンソルファイルを自動的に生成します TensorBoard。出力テンソルを保存するためにカスタマイズしたフック設定の場合、デバッガーには、 にインポートできるスカラーサマリー、ディストリビューション、ヒストグラムを作成する柔軟性があります TensorBoard。
これを有効にするには、DebuggerHookConfig
と TensorBoardOutputConfig
オブジェクトを estimator
に渡します。
次の手順では、スカラー、重み、バイアスを、 で視覚化できる完全なテンソル、ヒストグラム、ディストリビューションとして保存する方法について説明します TensorBoard。デバッガーはこれらをトレーニングコンテナのローカルパス (デフォルトパスは /opt/ml/output/tensors
) に保存し、デバッガー出力設定オブジェクトで渡された Amazon S3 のロケーションに同期させます。
デバッガーを使用して TensorBoard 互換性のある出力テンソルファイルを保存するには
-
デバッガー
TensorBoardOutputConfig
クラスを使用して TensorBoard 出力を保存するtensorboard_output_config
設定オブジェクトを設定します。s3_output_path
パラメータには、現在の SageMaker セッションのデフォルトの S3 バケットまたは優先 S3 バケットを指定します。この例では、container_local_output_path
パラメータを追加せずに、デフォルトのローカルパス/opt/ml/output/tensors
に設定します。import sagemaker from sagemaker.debugger import TensorBoardOutputConfig bucket = sagemaker.Session().default_bucket() tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://{}'.format(bucket) )
詳細については、
TensorBoardOutputConfig
APIAmazon SageMaker Python SDKの デバッガーを参照してください。 -
デバッガーフックを設定し、フックパラメータ値をカスタマイズします。例えば、次のコードは、すべてのスカラー出力をトレーニングフェーズでは 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" } ), ] )
デバッガー設定 の詳細についてはAPIs、
DebuggerHookConfig
APIsAmazon SageMaker Python SDKの デバッガー CollectionConfig
と を参照してください。 -
設定オブジェクトを渡すデバッガーパラメータを使用して SageMaker 推定器を作成します。次のサンプルテンプレートは、汎用 SageMaker推定器を作成する方法を示しています。
estimator
と を他の SageMaker フレームワークの推定子親クラスと推定子クラスEstimator
に置き換えることができます。この機能で使用できる SageMaker フレームワーク推定器はTensorFlow
、、PyTorch
、および ですMXNet
。from sagemaker.
estimator
importEstimator
estimator =Estimator
( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) estimator.fit()estimator.fit()
メソッドはトレーニングジョブを開始し、デバッガーは出力テンソルファイルをデバッガー S3 出力パスと TensorBoard S3 出力パスにリアルタイムで書き込みます。出力パスを取得するには、次の推定器メソッドを使用します。-
デバッガー S3 出力パスには、
estimator.latest_job_debugger_artifacts_path()
を使用します。 -
TensorBoard S3 出力パスには、 を使用します
estimator.latest_job_tensorboard_artifacts_path()
。
-
-
トレーニングが完了したら、保存された出力テンソルの名前をチェックします。
from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names()
-
Amazon S3 の TensorBoard 出力データを確認します。
tensorboard_output_path=estimator.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 ノートブックにファイルをロードする方法を示します。