我有一系列的Keras张量,并且为每个张量都通过name
参数指定了一个名称。
例如,我希望将BatchNormalization layer
命名为"a"
:
layer = BatchNormalization(axis=3, name="a")(input)
但是当我尝试获取我为层设置的名称时,结果看起来像这样:
print(layer.name)>>> a_2/cond/Merge:0
如何获取我为layer
对象设置的准确名称(在这个例子中是"a"
)?
回答:
让我们将这行代码分成两行:
layer = BatchNormalization(axis=3, name="a")node = layer(input)
现在如果你尝试输出
layer.name
它将是”a”。
你原本试图输出的是这个批归一化层的输出张量的名称,这实质上是一个TensorFlow张量,是由合并操作产生的。
因此,要做到这一点,你需要像上面展示的那样对层进行操作,或者对操作名称进行一些处理,因为操作名称中总是包含层名称的。