变量op
变量也是一种op,是一种特殊的张量
能够进行存储持久化,它的值就是张量,默认被训练
变量op特点:
1、变量op能够持久化保存,普通张量op是不行的
2、当定义一个变量op的时候,一定要在会话中去运行初始化
3、name参数,在tensorboard显示名字,区分相同op
变量的创建
tf.Variable(initial_value=NOne, name=None, trainable=True)
赋值
assign(value)
返回变量值
eval(session=None)
初始化所有变量op
tf.global_varibles_initializer()
可视化学习TensorBoard
数据序列化 events事件文件
TensorBoard通过读取TensorFlow的事件文件来运行
filewriter = tf.summary.FileWriter("/temp/", graph)
写入事件文件到指定目录(最好是绝对路径),以提供tensorboard使用
开启
$ tensorboard --logdir="/temp/"
打开浏览器 127.0.0.1:6006
代码示例
# -*- coding: utf-8 -*- import tensorflow as tf a = tf.constant([1, 2, 3], name="a") b = tf.constant(3.0, name="b") c = tf.constant(3.0, name="c") e = tf.add(b, c, name="add") var = tf.Variable(tf.random_normal((2, 3), mean=0.0, stddev=1.0), name="name") print(a, var) # Tensor("Const:0", shape=(3,), dtype=int32) # <tf.Variable 'Variable:0' shape=(2, 3) dtype=float32_ref> # 显示初始化op init_op = tf.global_variables_initializer() with tf.Session() as session: # 必须运行初始化op session.run(init_op) # 把程序的graph图结构写入事件文件 filewriter = tf.summary.FileWriter("temp/", graph=session.graph) print(session.run([a, var])) # [array([1, 2, 3], dtype=int32), # array([[ 1.0577981 , -1.1390951 , -0.12928246], # [ 1.2623566 , 0.7676961 , 0.46882382]], dtype=float32)]
增加变量显示
目的:观察模型的参数,损失值等变量值的变化
1、收集变量
# 收集对于损失函数和准确率等单值变量 tf.summary.scalar(name="", tensor) # 收集高纬度的变量参数 tf.summary.histogram(name="", tensor) # 收集输入的图片张量能显示图片 tf.summary.image(name="", tensor)
2、合并变量写入事件文件
merged = tf.summary.merge_all() # 合并运行,每次迭代都需要运行 summary = sess.run(merged) # 添加,i表示第几次的值 FileWriter.add_summary(summary, i)