tensorflow tensorboard,tensorflow使用教程
本文主要介绍python人工智能tensorflow函数tensorboard的使用方法。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
目录
tensorboard相关函数及其常用参数设置1 with TF . name _ scope(layer _ name):2 TF . summary . histogram(layer _ name /bias ,bias)3tf . summary . scalar(" Loss ",Loss)4tf . summary . merge _ all()5tf . summary . file writer(" logs/",sess . graph)6 write . add _ summary(result,i) 7tensorboard-logdir=logs示例tensorboard常用于更直观地观察神经网络中数据的变化这有助于我们更方便地观察张量流神经网络的构造和实现。
tensorboard相关函数及其常用参数设置
Tensorboard相关功能代码真的多了。你必须把它们都背下来吗?
不需要!只要你收藏了,复制粘贴到这里就可以了。常用的只有七个!
1 with tf.name_scope(layer_name):
TensorFlow中的name_scope函数用于创建参数命名空间。这个空间包括很多参数,每个参数都有不同的名称,可以更好的管理参数空间,防止变量命名的冲突。
该功能可用于生成相应的神经网络结构图。
该函数支持嵌套。
在本标题中,参数命名空间的名称是layer_name。
2 tf.summary.histogram(layer_name+"/biases",biases)
该函数用于将变量记录到tensorboard。用于显示直方图信息。
一般用于显示训练过程中变量的分布情况。
在这个标题中,偏差的直方图信息记录在tensorboard的layer _ name/bias 中。
3 tf.summary.scalar(“loss”,loss)
用于可视化和显示标量信息。
通常,该功能在绘制损耗曲线和累积曲线时使用。
在本标题中,损失的标量信息记录在张量板的“损失”中。
4 tf.summary.merge_all()
整合之前定义的所有摘要。
Tf.summary.scalar、tf.summary.histogram和tf.summary.image在定义后不会立即执行。这些函数需要通过sess.run显式调用因为一个程序中定义了很多日志写操作,要一个个调用会很麻烦,所以Tensorflow提供了tf.summary.merge_all()函数将所有的摘要一起排序。
TensorFlow程序在执行的时候,你只需要运行这个操作就可以将代码中定义的所有汇总内容执行一次,从而写入所有的汇总内容。
5 tf.summary.FileWriter(“logs/”,sess.graph)
将摘要内容写入磁盘文件。FileWriter类提供了在给定目录中创建事件文件的机制,并将摘要数据写入硬盘。
在该标题中,摘要数据被写入日志文件夹。
6 write.add_summary(result,i)
这个功能的前提是:
write=tf.sum
mary.FileWriter("logs/",sess.graph)
add_summary是tf.summary.FileWriter父类中的成员函数;添加summary内容到事件文件,写入事件文件。
在该标题中,result是tf.summary.merge_all()执行的结果,i表示世代数。
7 tensorboard --logdir=logs
该函数用于cmd命令行中。用于生成tensorboard观测网页。
例子
该例子为手写体识别例子。
import tensorflow as tfimport numpy as np
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data",one_hot = "true")
def add_layer(inputs,in_size,out_size,n_layer,activation_function = None):
layer_name = layer%s%n_layer
with tf.name_scope(layer_name):
with tf.name_scope("Weights"):
Weights = tf.Variable(tf.random_normal([in_size,out_size]),name = "Weights")
tf.summary.histogram(layer_name+"/weights",Weights)
with tf.name_scope("biases"):
biases = tf.Variable(tf.zeros([1,out_size]) + 0.1,name = "biases")
tf.summary.histogram(layer_name+"/biases",biases)
with tf.name_scope("Wx_plus_b"):
Wx_plus_b = tf.matmul(inputs,Weights) + biases
tf.summary.histogram(layer_name+"/Wx_plus_b",Wx_plus_b)
if activation_function == None :
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b)
tf.summary.histogram(layer_name+"/outputs",outputs)
return outputs
def compute_accuracy(x_data,y_data):
global prediction
y_pre = sess.run(prediction,feed_dict={xs:x_data})
correct_prediction = tf.equal(tf.arg_max(y_data,1),tf.arg_max(y_pre,1)) #判断是否相等
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) #赋予float32数据类型,求平均。
result = sess.run(accuracy,feed_dict = {xs:batch_xs,ys:batch_ys}) #执行
return result
xs = tf.placeholder(tf.float32,[None,784])
ys = tf.placeholder(tf.float32,[None,10])
layer1 = add_layer(xs,784,150,"layer1",activation_function = tf.nn.tanh)
prediction = add_layer(layer1,150,10,"layer2")
with tf.name_scope("loss"):
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=ys,logits = prediction),name = loss)
#label是标签,logits是预测值,交叉熵。
tf.summary.scalar("loss",loss)
train = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
init = tf.initialize_all_variables()
merged = tf.summary.merge_all()
with tf.Session() as sess:
sess.run(init)
write = tf.summary.FileWriter("logs/",sess.graph)
for i in range(5001):
batch_xs,batch_ys = mnist.train.next_batch(100)
sess.run(train,feed_dict = {xs:batch_xs,ys:batch_ys})
if i % 1000 == 0:
print("训练%d次的识别率为:%f。"%((i+1),compute_accuracy(mnist.test.images,mnist.test.labels)))
result = sess.run(merged,feed_dict={xs:batch_xs,ys:batch_ys})
write.add_summary(result,i)
该例子执行结果为:
结构图:
LOSS值:
weights,biases的直方图分布:
以上就是python人工智能tensorflow函数tensorboard使用方法的详细内容,更多关于tensorflow函数tensorboard的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。