在中可视化 Amazon SageMaker Debugger 输出张量 TensorBoard - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中可视化 Amazon SageMaker Debugger 输出张量 TensorBoard

重要

本页面已被弃用,取而代之的是亚马逊 SageMaker TensoBoard,它提供了与 SageMaker 培训和域名访问控制功能集成的全面 TensorBoard 体验。 SageMaker 要了解更多信息,请参阅 TensorBoard 在亚马逊 SageMaker

使用 SageMaker Debugger 创建与兼容的输出张量文件。 TensorBoard加载文件以可视化 TensorBoard 并分析您的 SageMaker 训练作业。调试器会自动生成与兼容的输出张量文件。 TensorBoard对于您为保存输出张量而自定义的任何挂钩配置,Debugger 可以灵活地创建可以导入的标量摘要、分布和直方图。 TensorBoard

Debugger 输出张量保存机制的架构图。

您可以通过将 DebuggerHookConfigTensorBoardOutputConfig 对象传递到 estimator 来启用此功能。

以下过程说明了如何将标量、权重和偏差保存为可视化的完整张量、直方图和分布。 TensorBoardDebugger 将它们保存到训练容器的本地路径(默认路径为 /opt/ml/output/tensors),并同步到通过 Debugger 输出配置对象传递的 Amazon S3 位置。

使用调试 TensorBoard 器保存兼容的输出张量文件
  1. 使用 Debugger 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) )

    有关更多信息,请参阅 Amaz SageMaker on Python TensorBoardOutputConfig API SDK 中的调试器。

  2. 配置 Debugger 钩子并自定义挂钩参数值。例如,以下代码将 Debugger 钩子配置为在训练阶段每 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" } ), ] )

    有关调试器配置的更多信息APIs,请参阅 Amaz on Python DebuggerHookConfig APIs SageMaker 中的调试器CollectionConfig和。SDK

  3. 使用传递配置对象 SageMaker 的 Debugger 参数构造估计器。以下示例模板展示了如何创建通用 SageMaker估计器。你可以Estimator用其他 SageMaker 框架的估计器父类estimator和估算器类替换和。此功能的可用 SageMaker 框架估算器有TensorFlowPyTorch、和。MXNet

    from sagemaker.estimator import Estimator estimator = Estimator( ... # Debugger parameters debugger_hook_config=hook_config, tensorboard_output_config=tensorboard_output_config ) estimator.fit()

    estimator.fit()方法启动训练作业,然后 Debugger 将输出张量文件实时写入调试器 S3 输出路径和 S3 输出路径。 TensorBoard 要检索输出路径,请使用以下估算器方法:

    • 对于 Debugger S3 输出路径,请使用 estimator.latest_job_debugger_artifacts_path()

    • 对于 S TensorBoard 3 输出路径,请使用estimator.latest_job_tensorboard_artifacts_path()

  4. 训练完成后,请检查保存的输出张量的名称:

    from smdebug.trials import create_trial trial = create_trial(estimator.latest_job_debugger_artifacts_path()) trial.tensor_names()
  5. 检查 Amazon S3 中的 TensorBoard 输出数据:

    tensorboard_output_path=estimator.latest_job_tensorboard_artifacts_path() print(tensorboard_output_path) !aws s3 ls {tensorboard_output_path}/
  6. 将 TensorBoard 输出数据下载到您的笔记本实例。例如,以下 AWS CLI 命令将 TensorBoard 文件下载到笔记本实例的当前工作目录/logs/fit下。

    !aws s3 cp --recursive {tensorboard_output_path} ./logs/fit
  7. 将文件目录压缩为要下载到本地计算机的TAR文件。

    !tar -cf logs.tar logs
  8. 将 Tensorboard TAR 文件下载并解压缩到设备上的某个目录中,启动 Jupyter 笔记本服务器,打开一个新的笔记本,然后运行该应用程序。 TensorBoard

    !tar -xf logs.tar %load_ext tensorboard %tensorboard --logdir logs/fit

以下动画屏幕截图介绍了步骤 5 至 8。它演示了如何下载调试器 TensorBoard TAR文件并将该文件加载到本地设备上的 Jupyter 笔记本中。

关于如何在本地计算机上下载和加载调试器 TensorBoard文件的动画。