Tensorboard图表:Profiler会话已开始

问题描述 投票:0回答:1

我想使用tensorflow 2在张量板上显示我的网络图。我遵循了this教程,并且编写了如下代码:

for epoch in range(epochs):
    # Bracket the function call with
    # tf.summary.trace_on() and tf.summary.trace_export().
    tf.summary.trace_on(graph=True, profiler=True)
    # Call only one tf.function when tracing.
    z = train_step(x, y)
    with writer.as_default():
        tf.summary.trace_export(name="train_graph", step=0, profiler_outdir=logdir)

[这样做时,我多次收到消息Profiler session started.。当然,当我打开张量板时,Graph表示发生了错误,无法显示任何内容。

tensorboard tensorflow2.0
1个回答
0
投票
我找到了响应here

实际上,您可以在v2中启用图形导出。你需要打电话要跟踪图形的代码前的tf.summary.trace_on()(例如L224,如果您只想乘火车一步),然后致电代码完成后的tf.summary.trace_off()。因为你只需要图形的一条痕迹,我建议用if global_step_val == 0:将这些调用包装起来,这样就不会在每一步都产生痕迹。

实际上,要创建图,仅需进行一次跟踪,而在每个时期都没有意义。解决方案是只在调用跟踪之前检查一次,例如:

for epoch in range(epochs): if epoch == 0: tf.summary.trace_on(graph=True, profiler=True) z = train_step(x, y) if epoch == 0: with writer.as_default(): tf.summary.trace_export(name="train_graph", step=0, profiler_outdir=logdir)

我个人不喜欢这种实现。也许使用decorator将是一个更好的主意,但我认为那是另一个话题。
© www.soinside.com 2019 - 2024. All rights reserved.