本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
可視化 Amazon SageMaker 調試器輸出張量 TensorBoard
重要
此頁面已被棄用,以支持 Amazon SageMaker 與 TensoBoard,該頁面提供了與 SageMaker 培訓和 SageMaker 域的訪問控制功能集成的全面 TensorBoard 體驗。如需進一步了解,請參閱用 TensorBoard 於偵錯和分析 Amazon 中的訓練任務 SageMaker。
使用 SageMaker 偵錯工具建立與 TensorBoard相容的輸出張量檔案。載入檔案以視覺化 TensorBoard 並分析您的 SageMaker 訓練工作。調試器會自動生成與兼容的 TensorBoard輸出張量文件。對於您為儲存輸出張量而自訂的任何勾點組態,除錯工具可以彈性建立可匯入的純量摘要、分佈和色階分佈圖。 TensorBoard
![偵錯工具輸出張量儲存機制的架構圖。](images/debugger/debugger-tensorboard-concept.png)
您可以透過傳遞 DebuggerHookConfig
和 TensorBoardOutputConfig
物件給 estimator
來啟用。
下列程序說明如何將純量、加權和偏差儲存為可視化的完整張量、色階分佈圖和分佈。 TensorBoardDebugger 會將它們儲存到訓練容器的本機路徑 (預設路徑為 /opt/ml/output/tensors
),並同步至透過偵錯程式輸出組態物件傳遞的 Amazon S3 位置。
若要使用除錯程式儲存 TensorBoard 相容的輸出張量檔案
-
使用 Debuter
TensorBoardOutputConfig
類別設定tensorboard_output_config
組態物件以儲存 TensorBoard 輸出。對於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) )
如需詳細資訊,請參閱 Amazon SageMaker Python 開發套件
中的偵錯工具 TensorBoardOutputConfig
API。 -
設定偵錯工具勾點,並自訂勾點參數值。例如,下列程式碼會設定偵錯工具勾點,以在訓練階段每 100 個步驟和驗證階段每 10 個步驟儲存所有純量輸出、每 500 個步驟
weights
參數 (儲存張量集合的預設save_interval
值為 500),以及每 10 個全域步驟bias
參數,直到全域步驟達到 500 個。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 開發套件
中的偵錯工具 CollectionConfig
和DebuggerHookConfig
API。 -
使用調試器參數傳遞配置對象構造 SageMaker 估計器。下列範例範本顯示如何建立一般 SageMaker估算器。您可以替換
estimator
和Estimator
其他 SageMaker 框架的估計器父類和估計器類。此功能的可用 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 指令會將 TensorBoard 檔案下載到
/logs/fit
筆記本執行個體的目前工作目錄下。!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 筆記本中。
![動畫螢幕擷取畫面,顯示如何在本機電腦上下載並載入除錯程式 TensorBoard檔案。](images/debugger/debugger-tensorboard.gif)