tensorboard的簡單使用


1.

首先保證你已有程序,下面是MLP實現手寫數字分類模型的代碼實現。

不懂的可以對照注釋理解。

#輸入數據是28*28大小的圖片,輸出為10個類別,隱層大小為300個節點
from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf
mnist
= input_data.read_data_sets("MNIST_data/",one_hot=True) sess = tf.InteractiveSession()
x
= tf.placeholder(dtype=tf.float32,shape=[None,784]) y_ = tf.placeholder(dtype=tf.float32,shape=[None,10]) image_reshaped_input = tf.reshape(x,[-1,28,28,1]) tf.summary.image('input',image_reshaped_input,10) #tf.summary.image()用於將圖像類型的tensor添加在Summary協議緩沖區中 #其本質就是將tensor統計存儲,用於將來展示在tensorboard上 #在計算圖中添加了一個新的節點,第一個參數是節點名稱,第二個參數是接收的tensor #第三個參數是最大存儲的圖像數目,此處指定為10,表明最多存儲10個圖像 #tf.summary.image()接受的tensor形狀必須為[batch_size,height,width,channels], #所以上面才對輸入數據進行了reshape()操作 #channels為1時,圖像被解析為灰度圖,為3時解析為RGB圖像,為4時解析為RGBA圖像
W1 = tf.Variable(tf.truncated_normal([784,300],stddev=0.1)) b1 = tf.Variable(tf.zeros([300])) hidden1 = tf.nn.relu(tf.matmul(x,W1)+b1) keep_prob = tf.placeholder(tf.float32) hidden1_drop = tf.nn.dropout(hidden1,keep_prob)
W2
= tf.Variable(tf.zeros([300,10])) b2 = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(hidden1_drop,W2)+b2) cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1])) tf.summary.scalar("cross_entropy",cross_entropy) #tf.summary.scalar()用於將標量類型的tensor統計存儲,形成折線圖,用於可視化 #在計算圖中添加了一個新的節點,第一個參數是節點名稱,第二個參數是接收的tensor
train_step = tf.train.AdagradOptimizer(0.3).minimize(cross_entropy) prediction_result = tf.argmax(y,1) tf.summary.histogram("prediction_result",prediction_result) #t.summary.histogram()用於將向量類型的tensor統計存儲,形成直方圖,用於可視化 #在計算圖中添加了一個新的節點,第一個參數是節點名稱,第二個參數是接收的tensor

correct_prediction = tf.equal(tf.argmax(y_,1),prediction_result) accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) tf.summary.scalar("accuracy",accuracy) merged = tf.summary.merge_all() #這一步操作的意義在於:如前所述,所有的summary操作本質上是graph中的一個節點 #tensorflow程序運行的時候,由於計算其他的變量不需要用到summary的結果,所以需要指定運行每一個summary #如如果程序中定義了多個summary,那么每一個summary都需要運行一次,寫起來太麻煩 #tf.summary.merge_all()可以將所有的summary操作拼成一個,這樣只需要運行一次即可
writer = tf.summary.FileWriter("./logs",sess.graph) #這一步將計算圖以event文件的格式存入了./logs文件夾當中 #注意此時會話尚未開始執行,所有變量也都未初始化,所以實際上之前定義的summary還統計不到任何信息
tf.global_variables_initializer().run() for i in range(3000): batch_xs,batch_ys = mnist.train.next_batch(100) _,summary = sess.run((train_step,merged),feed_dict={x:batch_xs,y_:batch_ys,keep_prob:0.75}) #需要對merged的所有summary執行sess.run()的操作,才可以確保數據流入了統計圖中 writer.add_summary(summary,i) #writer的add_summary()方法將某一個step的summary統計結果添加到了event文件中,i是step數 #這里實際上就是將每一個step的數據都添加到了event文件當中 #由此我們也理解了summary起到的統計的作用,實際上其統計的就是某一個tensor在不同的時刻的值的變化情況 #tf.summary.scalar將標量統計為折線圖,tf.summary.histogram將向量統計為直方圖 print("The final resultis"+str(accuracy.eval({x:mnist.test.images,y_:mnist.test.labels,keep_prob:1.0})))

 

2.跑完程序后到程序當前目錄下log文件夾找到 文件events.

 

 

3.這一步是啟動TensorBoard:

復制上面的路徑,win10下打開Powershell ,輸入:

tensorboard --logdir 上面的路徑

 

4. 然后打開瀏覽器,我的是微軟的edge瀏覽器,輸入上面得到的網址:

http://localhost:6066

就得到了想要的圖

------ ------------------------------------------------------------------------------------------------------分割線

如果在shell中只輸入tensorboard命令就顯示出錯,則按以下步驟添加環境變量即可

 

1.搜索編輯系統環境變量

2.點環境變量,雙擊PATH

3.點擊新建,把python路徑添加進去,我的是anaconda下的Scripts,點進去復制上面的路徑,新建添加的就是這個路徑。

(圖中最后一條)

再點擊確定就行,這樣就把環境變量添加好了,再輸入tensorboard命令就不會出錯了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM