tf.variable与tensorflow中的tf.constant

Mon*_*all 6 tensorflow tensorboard

我运行以下代码

 W = tf.Variable(tf.zeros([1, 3]), dtype=tf.float32, name="W")
 B = tf.constant([[1, 2, 3]], dtype=tf.float32, name="B")
 act = tf.add(W, B)
 init = tf.global_variables_initializer()
 with tf.Session() as sess:
     sess.run(init)
     sess.run(act)
     writer = tf.summary.FileWriter("./graphs", sess.graph)
 writer.close()
Run Code Online (Sandbox Code Playgroud)

并用tensorboard验证它:

在此输入图像描述

令我困惑的是read操作和之前的操作,表示为(W).当内部具有所有这些操作节点时,常量B直接指向操作.这是我的问题:Addtf.variable

  1. 什么是(W)操作?常数B是一个常数圆,表示一个常数.椭圆形节点表示操作节点.(W)似乎没有任何操作,但它用相同的椭圆形节点表示?该节点的工作是什么?

  2. Addnode显式读取(W)带有read操作的节点,而不是常量节点B.为什么read变量节点需要?

Sal*_*ali 2

Wtf.Variable您在这里声明了操作: W = tf.Variable(tf.zeros([1, 3]), dtype=tf.float32, name="W")。它在幕后执行许多操作(例如W.initializer- 您的初始化操作、 W.value()读取操作、W.assign()将值分配给自身,以及可能更多)。您还可以看到您的初始值zeros

所有这些都是 tf.Variable 的内部内容,您不必担心。这就是为什么所有这些都被折叠(抽象)到红色大边框后面。