import tensorflow as tf
变量op:
变量也是一种OP,是一种特殊的张量,能够进行存储持久化,它的值就是张量,默认被训练
和常量不同(可以在会话中直接print(sess.run())打印结果),需要初始化变量(tf.global_variables_initializer(),这是是一个初始化所有变量的op,在会话中开启)
tf.Variable(initial_value = None,name = None,trainable = True)
- 作用:创建一个带值(initial_value)的新变量
- assign(value):为变量分配一个新值,返回新值
- eval(session = None):计算并返回此变量的值
- name 表示变量名字
# 变量op示例
# 1.变量能够持久化保存,普通张量op是不行的
# 2.当定义一个变量op的时候,一定要在会话当中去运行初始化
a = tf.constant([1,2,3,4,5])
var = tf.Variable(tf.random_normal([2,3],mean = 0.0,stddev = 1.0))
# 必须做一步显示的初始化op
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
# 必须运行初始化op
sess.run(init_op)
print(sess.run([a,var]))
[array([1, 2, 3, 4, 5]), array([[ 1.421473 , 0.6449843, -1.0459968],
[ 1.8416445, 0.7362613, 0.7117497]], dtype=float32)]
- 数据序列化-events文件:TensorBoard 通过TensorFlow的事件文件来运行
- tf.summary.FileWritter('/temp/tensorflow/summary/test/',graph = )
返回filewriter,写入事件文件到指定目录(最好用绝对路径),以提供给tensorboard使用
- 开启(windows 打开cmd)输入命令:'tensorboard -logdir= "./tmp/summary/test/"
一般浏览器打开为 127.0.0.1:6006
注:修改程序后:再保存一遍会有新的事件文件,打开默认为最新
# 变量op示例
# 1.变量能够持久化保存,普通张量op是不行的
# 2.当定义一个变量op的时候,一定要在会话当中去运行初始化
# 3.name参数:在tensorboard使用的时候显示名字,可以让相同op名字的进行区分
a = tf.constant(3.0,name = "a")
b = tf.constant(4.0,name = "b")
c = tf.add(a,b,name = "add")
var = tf.Variable(tf.random_normal([2,3],mean = 0.0,stddev = 1.0),name = "variable")
# 必须做一步显示的初始化op
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
# 必须运行初始化op
sess.run(init_op)
# 把程序的图结构写入事件文件,graph:把指定的图写进事件文件当中
filewriter = tf.summary.FileWriter("./tmp/summary/test/",graph = sess.graph)
print(sess.run([c,var]))
[7.0, array([[-0.2760799 , 0.66796315, -0.69428635],
[-1.8395584 , 0.47626588, -1.0956659 ]], dtype=float32)]
cmd中输入相应命令:tensorboard --logdir=C:\Users\24474\Desktop\DataAnalysis\classification_working\tmp\summary\test\ --port=6006
打开上述网址即可看到可视化结果
1:报错: ‘tensorboard’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
解决方法:确保tensorboard是在系统环境变量之中的
详细参考:https://blog.csdn.net/zhylhy520/article/details/80760816
2:报错:Could not load dynamic library ‘cudart64_101.dll’; dlerror: cudart64_101.dll not found
解决方法:先不着急重新配置版本,看下命令是否正确,使用相对路径可能导致出错
参考路径:tensorboard --logdir=C:\Users\24474\Desktop\DataAnalysis\classification_working\tmp\summary\test\ --port=6006
也可直接在notebook启动,参考:https://blog.csdn.net/weixin_42228166/article/details/121983339