我对TensorFlow的内部知识还很陌生。为了试图理解TensorFlow的AdamOptimizer的实现,我检查了TensorBoard中的相应子图。默认情况下name + '_1',似乎有一个名为的重复子图name='Adam'。  
以下MWE产生下图。(请注意,我已经扩展了该x节点!)
import tensorflow as tf
tf.reset_default_graph()
x = tf.Variable(1.0, name='x')
train_step = tf.train.AdamOptimizer(1e-1, name='MyAdam').minimize(x)
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    with tf.summary.FileWriter('./logs/mwe') as writer:
        writer.add_graph(sess.graph)
我很困惑,因为我希望上面的代码在图形内部仅产生一个名称空间。即使检查相关的源文件(即之后adam.py,optimizer.py和training_ops.cc),这不是很清楚,我如何/为什么/在其中创建副本。
问题:重复AdamOptimizer子图的来源是什么?
我可以想到以下可能性:
由于最初的困惑,我在最初的问题上写了详细的说明,以详细说明如何使用TensorFlow / TensorBoard建立可重现的环境,该环境可重现此图。现在,我已将所有内容替换为有关扩展x节点的说明。
我想要一种评估 f 字符串的机制,其中要评估的内容在变量中提供。例如,
x=7
s='{x+x}'
fstr_eval(s)
对于我想到的用例,字符串s可能来自用户输入(用户信任的地方eval)。
虽然eval在生产中使用通常是非常糟糕的做法,但也有明显的例外。例如,用户可能是在本地机器上工作的 Python 开发人员,他希望使用完整的 Python 语法来开发 SQL 查询。
关于重复的注意事项:这里和这里有类似的问题。第一个问题是在模板的有限上下文中提出的。第二个问题虽然与这个问题非常相似,但已被标记为重复。因为这个问题的上下文与第一个问题有很大不同,我决定根据第二个问题之后自动生成的建议提出第三个问题:
这个问题以前有人问过,已经有了答案。如果这些答案不能完全解决您的问题,请提出一个新问题。
我有一个已安装的软件包(通常位于 内部\xe2\x80\xa6/lib/pythonX.Y/site-packages/my-package),其中包含(除其他外)资源\xe2\x80\xa6/my-package/a.txt和\xe2\x80\xa6/my-package/b.png. 我想\xe2\x80\xa6/my-package/get_my_resources.py使用以下代码访问这些资源:
txt = importlib.resources.read_text(this_package, 'a.txt')\nimg = importlib.resources.read_binary(this_package, 'b.png')\n我应该用来做什么this_package?当我尝试相对自引用时this_package = '.',出现错误
TypeError: the 'package' argument is required to perform a relative import for '.'\n