作用域主要用来不用重复定义变量,另外就是用与画图
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()) #print 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))