【问题标题】:Tensorboard. Duplicated graph node: one unconnected with placeholders and one connected张量板。重复的图形节点:一个未连接占位符,一个连接
【发布时间】:2020-01-01 21:43:48
【问题描述】:

我正在尝试在 TensorBoard 上可视化我的模型图。我正在使用 Keras 2.1.5 和 tensorflow-gpu 1.13.1。我的模型是卷积层的串联,最后是一个自定义层,我在其中使用张量进行一些操作。 一切正常,尽管我在自定义层的末尾和开头定义了一些打印,然后在我调用一次时检查 Python 是否两次输入了我的代码。

我正在运行一些培训并检查 TensorBoard 上的模型图,然后发现了一些我在网络上的任何其他示例中都没有看到的东西:

Graph of custom layer

我的自定义层 (trans2img) 有一个连接图,另一个未连接图,输入为空占位符。我不明白原因。

这是我的代码的一个简单示例:

def custom_layer(inputs):
    with tf.name_scope('trans2img'):
        a = inputs[0]
        def some_operation(a):
            with tf.name_scope('op1'):
                b = 2*a
                return b
        def some_other_op(b, c):
            with tf.name_scope('op2'):
                d = b/c
                return d

        b = some_operation(a)
        d = some_other_op(b, inputs[1])
        return d

之后,在我的网络定义文件中,我将此自定义层加载为from custom_layer import custom_layer,然后将其用作 Lambda 层:

net = Lambda(custom_layer)[branch1, branch2]

我不知道是因为我在 custom_layer 中定义内部操作的方式还是我调用它们的方式。我想知道如何解释我得到的第二个未连接图,以及它是否是 unnineficientcode 的指标。我将不胜感激任何线索和帮助。

【问题讨论】:

    标签: python-3.x tensorflow tensorboard


    【解决方案1】:

    当您使用多个 tf 范围时会发生此问题。

    为每个作用域创建一个带有“op_{integer}”的新操作。

    您需要使用“absolute_name_scope(scope)”来解决您的问题。

    请参考以下链接了解如何使用它。

    https://github.com/tensorflow/tensorflow/issues/9545

    https://github.com/tensorflow/tensorflow/pull/23250/commits/1169eaca048b660905fc5776e617cc824a19b125

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 2021-11-20
      • 2017-11-13
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      相关资源
      最近更新 更多