【问题标题】:How to profile a keras predict call with tensorboard如何使用 tensorboard 分析 keras 预测调用
【发布时间】:2020-04-06 02:25:20
【问题描述】:

我想要一个预测调用的时序配置文件/跟踪,以估计我的模型执行推理的速度。

我现在正在使用:

log_dir="logs/profile/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")

tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, profile_batch = 1)

x_test, y_test = next(iter(training_ds))
_ = unet.predict(x_test, verbose=1, callbacks=[tensorboard_callback])

但是 profiling 选项卡没有显示在 tensorboard 中。我在这里错过了什么?

【问题讨论】:

    标签: tensorflow keras profiling tensorboard


    【解决方案1】:

    首先,查看 CUPTI 是否正确加载。在终端中,您应该会看到如下内容:

    2019-12-13 12:01:47.617853: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] 成功打开动态库libcupti.so.10.0

    如果没有找到 CUPTI 库,请确保您的 LD_LIBRARY_PATH 设置正确。 $ echo $LD_LIBRARY_PATH 应该返回类似:

    /usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64

    如果这一切都设置好了,请运行以下 sn-p 代码,假设您已经在 tensorflow/keras 中描述了您的模型:

    # Set up logging.
    stamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
    logdir = 'logs/trace/%s' % stamp
    writer = tf.summary.create_file_writer(logdir)
    
    tf.summary.trace_on(graph=True, profiler=True)
    # Forward pass
    input, label = next(iter(dataset)) # tf DataSet object
    your_model(input)
    with writer.as_default():
        tf.summary.trace_export(name="model_trace", step=0, profiler_outdir=logdir)
    

    现在,最后一步对于在 Tensorboard 中查看跟踪至关重要:您必须在 Chrome 中查看 Tensorboard 才能正确解析 .trace 文件。

    【讨论】:

      【解决方案2】:

      如果您使用的是虚拟环境,请确保不要混淆。见my answer to another question.

      此外,还有 4 种方法可以写入分析数据。正如您之前尝试过的回调一样,您应该尝试其他方法:Overview of profiling methods

      【讨论】:

        猜你喜欢
        • 2021-09-19
        • 2022-12-13
        • 2017-06-26
        • 1970-01-01
        • 2018-01-09
        • 2020-10-30
        • 2018-01-31
        • 2019-06-07
        • 2017-10-23
        相关资源
        最近更新 更多