在张量板中可视化 Amazon SageMaker 调试器输 TensorBoard 量 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

在张量板中可视化 Amazon SageMaker 调试器输 TensorBoard 量

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


            调试器输出张量保存机制的体系结构图。

您可以通过传递DebuggerHookConfigTensorBoardOutputConfig对象添加到estimator.

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

使用调 TensorBoard 器保存兼容的输出张量文件

  1. 设置tensorboard_output_config配置对象以使用调试器保存 TensorBoard 输出TensorBoardOutputConfig类 对于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 开发工具包.

  2. 配置调试器挂接并自定义挂接参数值。例如,以下代码配置调试器钩子,以便在训练阶段每 100 个步骤保存所有标量输出,在验证阶段保存 10 个步骤,weights参数每 500 个步骤(默认save_interval值用于保存张量集合的值为 500),bias参数每 10 个全局步骤,直到全局步骤达到 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 的更多信息,请参阅调试程序CollectionConfigDebuggerHookConfig中的 APIAmazon SageMaker 开发工具包.

  3. 使用调试器参数传递配置对象构建 SageMaker 估计器。以下示例模板演示如何创建通用 SageMaker 评估程序。您可以替换estimatorEstimator与其他 SageMaker 框架的估计器父类和估计器类一起使用。此功能的可用 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()方法启动训练作业,调试器将输出张量文件实时写入调试器 S3 输出路径和 TensorBoard S3 输出路径。要检索输出路径,请使用以下估计器方法:

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

    • 对于 TensorBoard S3 输出路径,请使用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 输出数据下载到您的笔记本实例。例如,以下Amazon CLI命令将文件下载到/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 文件。