python人工智能tensorflow函數(shù)tensorboard使用方法
tensorboard常用于更直觀的觀察數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)中的變化,或者用于觀測(cè)已經(jīng)構(gòu)建完成的神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。其有助于我們更加方便的去觀測(cè)tensorflow神經(jīng)網(wǎng)絡(luò)的搭建情況以及執(zhí)行情況。
tensorboard相關(guān)函數(shù)及其常用參數(shù)設(shè)置
tensorboard相關(guān)函數(shù)代碼真的好多啊。難道都要背下來(lái)嗎!
不需要!只要收藏了來(lái)這里復(fù)制粘貼就可以了。常用的只有七個(gè)!
1 with tf.name_scope(layer_name):
TensorFlow中的name_scope函數(shù)的作用是創(chuàng)建一個(gè)參數(shù)名稱空間。這個(gè)空間里包括許多參數(shù),每個(gè)參數(shù)有不同的名字,這樣可以更好的管理參數(shù)空間,防止變量命名時(shí)產(chǎn)生沖突。
利用該函數(shù)可以生成相對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
該函數(shù)支持嵌套。
在該標(biāo)題中,該參數(shù)名稱空間空間的名字為layer_name。
2 tf.summary.histogram(layer_name+"/biases",biases)
該函數(shù)用于將變量記錄到tensorboard中。用來(lái)顯示直方圖信息。
一般用來(lái)顯示訓(xùn)練過(guò)程中變量的分布情況。
在該標(biāo)題中,biases的直方圖信息被記錄到tensorboard的layer_name+"/biases"中。
3 tf.summary.scalar(“loss”,loss)
用來(lái)進(jìn)行標(biāo)量信息的可視化與顯示。
一般在畫(huà)loss曲線和accuary曲線時(shí)會(huì)用到這個(gè)函數(shù)。
在該標(biāo)題中,loss的標(biāo)量信息被記錄到tensorboard的"loss"中。
4 tf.summary.merge_all()
將之前定義的所有summary整合在一起。
tf.summary.scalar、tf.summary.histogram、tf.summary.image在定義的時(shí)候,也不會(huì)立即執(zhí)行,需要通過(guò)sess.run來(lái)明確調(diào)用這些函數(shù)。因?yàn)椋谝粋€(gè)程序中定義的寫(xiě)日志操作比較多,如果一一調(diào)用,將會(huì)十分麻煩,所以Tensorflow提供了tf.summary.merge_all()函數(shù)將所有的summary整理在一起。
在TensorFlow程序執(zhí)行的時(shí)候,只需要運(yùn)行這一個(gè)操作就可以將代碼中定義的所有寫(xiě)summary內(nèi)容執(zhí)行一次,從而將所有的summary內(nèi)容寫(xiě)入。
5 tf.summary.FileWriter(“logs/”,sess.graph)
將summary內(nèi)容寫(xiě)入磁盤(pán)文件,F(xiàn)ileWriter類提供了一種用于在給定目錄下創(chuàng)建事件文件的機(jī)制,并且將summary數(shù)據(jù)寫(xiě)入硬盤(pán)。
在該標(biāo)題中,summary數(shù)據(jù)被寫(xiě)入logs文件夾中。
6 write.add_summary(result,i)
該函數(shù)成立前提為:
write = tf.summary.FileWriter("logs/",sess.graph)
add_summary是tf.summary.FileWriter父類中的成員函數(shù);添加summary內(nèi)容到事件文件,寫(xiě)入事件文件。
在該標(biāo)題中,result是tf.summary.merge_all()執(zhí)行的結(jié)果,i表示世代數(shù)。
7 tensorboard --logdir=logs
該函數(shù)用于cmd命令行中。用于生成tensorboard觀測(cè)網(wǎng)頁(yè)。
例子
該例子為手寫(xiě)體識(shí)別例子。
import tensorflow as tf import 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數(shù)據(jù)類型,求平均。 result = sess.run(accuracy,feed_dict = {xs:batch_xs,ys:batch_ys}) #執(zhí)行 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是標(biāo)簽,logits是預(yù)測(cè)值,交叉熵。 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("訓(xùn)練%d次的識(shí)別率為:%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)
該例子執(zhí)行結(jié)果為:
結(jié)構(gòu)圖:
LOSS值:
weights,biases的直方圖分布:
以上就是python人工智能tensorflow函數(shù)tensorboard使用方法的詳細(xì)內(nèi)容,更多關(guān)于tensorflow函數(shù)tensorboard的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)的金山快盤(pán)的簽到程序
正在學(xué)習(xí)python而且自己一直在用金山快盤(pán),所以就寫(xiě)來(lái)個(gè)簽到的功能,每天定時(shí)跑2013-01-01python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼,幫助大家更好的理解和使用python處理圖片,感興趣的朋友可以了解下2020-12-12python中類的輸出或類的實(shí)例輸出為<__main__類名 object at xxxx>這種形式的原因
在本篇文章里小編給大家分享了關(guān)于python中類的輸出或類的實(shí)例輸出為何是<__main__類名 object at xxxx>這種形式,需要的朋友們可以參考下。2019-08-08Python利用D3Blocks繪制可動(dòng)態(tài)交互的圖表
今天小編給大家來(lái)介紹一款十分好用的可視化模塊,D3Blocks,不僅可以用來(lái)繪制可動(dòng)態(tài)交互的圖表,并且導(dǎo)出的圖表可以是HTML格式,方便在瀏覽器上面呈現(xiàn),感興趣的可以了解一下2023-02-02python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能
這篇文章主要介紹了python 基于selenium實(shí)現(xiàn)鼠標(biāo)拖拽功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12pyqt5之將textBrowser的內(nèi)容寫(xiě)入txt文檔的方法
今天小編就為大家分享一篇pyqt5之將textBrowser的內(nèi)容寫(xiě)入txt文檔的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python中的十大%占位符對(duì)應(yīng)的格式化的使用方法
本文主要介紹了python中的十大%占位符對(duì)應(yīng)的格式化的使用方法,它可以很好的幫助我們解決一些字符串格式化的問(wèn)題, 文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下2022-01-01python實(shí)現(xiàn)批量修改圖片格式和尺寸
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量修改圖片格式和尺寸的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06