Tensorboard。复制的图节点:一个未与占位符连接,另一个与已连接

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

我正在尝试在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中定义内部操作的方式或调用它们的方式。我想知道如何解释我得到的第二个未连接图,以及它是否表明代码无效。任何线索和帮助,我将不胜感激。

python-3.x tensorflow tensorboard
1个回答
0
投票

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

对于每个范围,它都会使用“ op_ {integer}”创建一个新的op。

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

请参阅下面的链接以了解如何使用它。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.