【问题标题】:How to use Tensorboard in AWS Sagemaker如何在 AWS Sagemaker 中使用 Tensorboard
【发布时间】:2020-11-19 10:37:00
【问题描述】:

我指的是以下链接在 Sagemaker Script Mode 方法中使用 Tensorboard。

https://www.tensorflow.org/tensorboard/get_started

https://levelup.gitconnected.com/how-to-use-tensorboard-in-an-amazon-sagemaker-notebook-instance-a41ce2fd973f

https://towardsdatascience.com/using-tensorboard-in-an-amazon-sagemaker-pytorch-training-job-a-step-by-step-tutorial-19b2b9eb4d1c

下面是我的训练脚本中的张量板回调,它是一个 .py 文件

model = create_model()
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train, 
          y=y_train, 
          epochs=5, 
          validation_data=(x_test, y_test), 
          callbacks=[tensorboard_callback])

在笔记本中,我正在创建下面的 Tensorflow Estimator,我将上面的脚本文件名作为 entry_point 传递。

estimator = TensorFlow(
    entry_point='Script_File.py',
    train_instance_type=train_instance_type,
    train_instance_count=1,
    model_dir=model_dir,
    hyperparameters=hyperparameters,
    role=sagemaker.get_execution_role(),
    base_job_name='tf-fashion-mnist',
    framework_version='1.12.0', 
    py_version='py3',
    output_path=<S3 Path>,
    script_mode=True,
)

我正在笔记本中使用以下代码开始训练。

estimator.fit(inputs)

训练完成后,我将在终端中使用以下代码(也已在我的笔记本单元格中尝试过)来启动张量板。

tensorboard --logdir logs/fit

但在张量板上我无法查看任何图表。它显示消息“无法获取运行”。 有什么我想念的吗?还是我必须在脚本中进行任何额外设置才能在 Tensorboard 中查看我的日志?

【问题讨论】:

    标签: amazon-web-services amazon-s3 tensorflow2.0 tensorboard amazon-sagemaker


    【解决方案1】:

    您的张量板logdir 不是logs/fit.. 但附加了当前日期。尝试将logs/fit 用作log_dir,看看它是否有效。

    编辑

    如果你想在本地使用 tensorboard,你必须将 tensorboard 日志发送到 S3 并从那里读取。为此,您必须执行第三个链接示例所做的操作,因此请包含 sagemaker 调试器:

    从 sagemaker.debugger 导入 TensorBoardOutputConfig

    tensorboard_output_config = TensorBoardOutputConfig( s3_output_path='s3://path/for/tensorboard/data/emission', container_local_output_path='/local/path/for/tensorboard/data/emission' )

    那么您的张量板命令将类似于:

    AWS_REGION= AWS_LOG_LEVEL=3 张量板 --logdir s3://path/for/tensorboard/data/emission

    或者,如果您想在笔记本中使用 tensorboard,则必须执行第二个链接示例的操作,因此只需在单元格中安装并运行 tensorboard,如下所示:

    https:///proxy/6006/

    【讨论】:

    • 感谢您的回复@rok。我尝试给出“log_dir”但仍然面临同样的问题。
    • 请说明您在哪里启动 tensorboard?您的训练代码在哪里运行?那是笔记本吗?请发布代码以开始培训工作。
    • 我的训练代码是一个 .py 脚本(因为我使用的是脚本模式),我将它存储在与笔记本相同的文件夹中。该脚本中的训练代码如上图所示。请参考更新后的问题代码以开始培训工作。
    • 我编辑了我的回复,看看。基本上,您有 2 个选项可以在本地(指向 s3 存储桶)或笔记本中使用 tensorboard。
    • 感谢您的回复。这两种方法我都试过了。尽管我可以在使用这两种方法(在 S3 存储桶和本地路径中)时看到一些事件文件,但 Tensorboard 中没有显示任何内容。我收到错误消息“无法获取运行”。
    猜你喜欢
    • 2020-07-05
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2019-11-12
    相关资源
    最近更新 更多