
作用域主要用来不用重复定义变量,另外就是用与画图
import tensorflow as tf '''
可视化
tf.summary.scalar 添加一个标量
tf.summary.audio 添加一个音频变量
tf.summary.image 添加一个图片变量
tf.summary.histogram 添加一个直方图变量
tf.summary.test 添加一个字符串类型的变量
''' '''
后台执行命令
tensorboard --logdir ~/PycharmProjects/tensorflow/resutl
看到启动了一个6006的端口
''' '''
代码部分
'''
#定义使用cpu
with tf.device('/cpu:0'):
#定义作用域名字为'foo'
with tf.variable_scope('foo'):
#初始化一个值
x_init1 = tf.get_variable('init_x',[10],tf.float32,initializer=tf.random_normal_initializer())[0]
x = tf.Variable(initial_value=x_init1,name='x')
y = tf.placeholder(dtype=tf.float32,name='y')
z = x + y with tf.variable_scope('bar'):
a = tf.constant(3.0) + 4.0 w = z * a #开始记录信息
tf.summary.scalar('scalar_init_x',x_init1)
tf.summary.scalar(name='scalar_x',tensor=x)
tf.summary.scalar('scalar_z',z)
tf.summary.scalar('scalar_w',w) assign_op = tf.assign(x,x + 1.0)
with tf.control_dependencies([assign_op]):
with tf.device('/cpu:0'):
out = x * y
tf.summary.scalar('scalar_y',y) with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
# merger all summary
merged_summary = tf.summary.merge_all()
#得到输出的文件对象
writer = tf.summary.FileWriter('./result',sess.graph) #初始化
sess.run(tf.global_variables_initializer())
for i in range(1,5):
summary,r_out,r_x,r_w = sess.run([merged_summary,out,x,w],feed_dict={y:i})
writer.add_summary(summary,i)
print("{},{},{}".format(r_out,r_x,r_w))