对于下面程序:
import tensorflow as tf
def op_demo():
a = tf.constant(5)
b = tf.constant(6)
c = tf.add(a,b)
print("a:\n",a)
print("b:\n",b)
print("c:\n",c)
with tf.Session() as sess:
c_value = sess.run(c)
print("c_value:\n",c_value)
tf.summary.FileWriter("./tmp/value",graph=sess.graph)
return None
if __name__ == "__main__":
op_demo()
程序结果:
a:
Tensor("Const:0", shape=(), dtype=int32)
b:
Tensor("Const_1:0", shape=(), dtype=int32)
c:
Tensor("Add:0", shape=(), dtype=int32)
c_value:
11
开启tensorboard时会看到:
TensorFlow会自动为图中的每个指令选择一个唯一名称,使程序阅读起来更轻松。
每个创建新的tf.Operation或返回新的tf.Tensor的API函数可以接受可选的name参数。
如,constant(),其函数格式如下:
def constant(value,dtype=None,shape=None,name="Const",verify_shape=Flase)
可以看到其name参数默认为Const,可以根据需要更改
比如,将上述代码更改一下:
a = tf.constant(5,name="test")
b = tf.constant(6,name="test")
c = tf.add(a,b,name="value")
输出为:
a:
Tensor("test:0", shape=(), dtype=int32)
b:
Tensor("test_1:0", shape=(), dtype=int32)
c:
Tensor("value:0", shape=(), dtype=int32)
c_value:
11
刷新tensorboard,有:
为什么b的是test_1呢?因为在b之前,a的指令名称就已经命名为test了,在一张图中,tensorflow会自动在后面加"1","2"...为了确保每个指令名称的唯一性。