tensorflow - 为什么同名的 tf.name_scope 不同?

标签 tensorflow

看代码片段:

import tensorflow as tf

with tf.name_scope('y'):
    a1 = tf.Variable(1,name='a')

with tf.name_scope('y'):
    a2 = tf.Variable(1,name='b')

print(a1.name)
print(a2.name)

输出为

y/a:0
y_1/b:0

为什么变量a2的name_scope是y_1?

最佳答案

关于github关于这个话题有一个有趣的讨论。

您可以在末尾附加一个“/”,使其成为绝对标识符:

import tensorflow as tf

with tf.name_scope('y'):
    a1 = tf.Variable(1,name='a')

with tf.name_scope('y/'):
    a2 = tf.Variable(1,name='b')

print(a1.name)
print(a2.name)

其产量:

y/a:0
y/b:0

这同样适用于 tf.variable_scope() .

您的问题的底线可能是 Tensorflow 无法知道您是否明确想要向范围附加某些内容,或者是否有人在其他地方创建了不同的范围并希望保护您免受无意的重用。通过在末尾附加“/”,您可以将名称转变为绝对标识符。

关于tensorflow - 为什么同名的 tf.name_scope 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45670224/

相关文章:

python - 如何为 Tensorflow 2 中的每像素分类从 PNG 创建单热编码矩阵

Windows 上的 Tensorflow 自定义编译

python - 如何将 Float 数组/列表转换为 TFRecord?

python - 从 keras.backend.tensorflow_backend 导入 set_session

python - 加载以前保存的没有自定义层的模型时缺少 get_config

tensorflow - 无法使用 bazel 从源代码构建 TensorFlow。 2016 年 1 月 22 日

python - 如何从字符串加载Python模块?

machine-learning - 如何避免简单前馈网络的过度拟合

python - 如何保持多个 tensorflow 队列同步

python-2.7 - 树莓派上的 tensorflow