本主題的內(nèi)容:
- 使用Tensorboard
- 理解圖
- 掌握graph與scalar可視化
一蒋失、圖可視化
1.產(chǎn)生圖數(shù)據(jù)
- 圖在代碼中描述好后躁锁,在執(zhí)行會話環(huán)境中會自動存儲,可以世界使用Session的屬性graph獲取,Session只有三個屬性:graph與graph_ref,sess_str挖息,Session的屬性代碼:
class SessionInterface(object): """Base class for implementations of TensorFlow client sessions.""" @property def graph(self): """The underlying TensorFlow graph, to be used in building Operations.""" raise NotImplementedError('graph') @property def sess_str(self): """The TensorFlow process to which this session will connect.""" raise NotImplementedError('sess_str')
- 可視化數(shù)據(jù)保存由tf.summary.FileWriter類實現(xiàn),其構(gòu)造器聲明如下:
__init__( logdir, #存放數(shù)據(jù)的目錄 graph=None, #需要存儲的圖對象數(shù)據(jù) max_queue=10, flush_secs=120, graph_def=None, filename_suffix=None, session=None )
- 圖數(shù)據(jù)獲取實現(xiàn)代碼如下
#coding=utf-8 import numpy as np import tensorflow as tf #1.描述圖 m1=np.random.uniform(0,1,(4,3)) m2=np.random.uniform(0,1,(3,2)) r=tf.matmul(m1,m2) #2.圖執(zhí)行 session=tf.Session() #創(chuàng)建一個圖數(shù)據(jù)IO寫入器 writer=tf.summary.FileWriter("./graph",graph=session.graph) init_op= tf.global_variables_initializer() session.run(init_op) re=session.run(r) print(re) #關(guān)閉圖寫入器 writer.close()
- 產(chǎn)生的圖數(shù)據(jù)結(jié)果
2.啟動可視化
-
使用Tensorboard工具創(chuàng)建一個web應(yīng)用服務(wù)系宜,然后使用瀏覽器就可以得到可視化的圖結(jié)構(gòu)骑丸。
- Tensorboard在Tensorflow安裝的時候會一起安裝。
- Tensorboard使一個命令行工具恭取,使用格式如下:
> tensorboard --logdir=Graph數(shù)據(jù)存放目錄
-
可視化啟動例子:
-
使用瀏覽器訪問
注意:端口是6006泰偿,URL是:http://127.0.0.1:6006/
-
可視化圖元素說明
-
可視化數(shù)據(jù)
Tensorboard的數(shù)據(jù)類型有很多
常用的有:scalars,distributions蜈垮,histograms 等 -
可視化刷新設(shè)置
二耗跛、數(shù)據(jù)標(biāo)量可視化
1. 確定標(biāo)量數(shù)據(jù)
#1.scalar數(shù)據(jù)
rd1=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd1",rd1)
rd2=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd2",rd2)
??【注意】其中使用隨機函數(shù)產(chǎn)生隨機數(shù),其中只能使用標(biāo)量攒发,所以函數(shù)的第一個參數(shù)設(shè)置為[]调塌,表示標(biāo)量。如果使用向量惠猿,運行參數(shù)肯定不匹配羔砾。
2. 合并標(biāo)量數(shù)據(jù)
#2.數(shù)據(jù)合并
me=tf.summary.merge_all()
3. 計算標(biāo)量數(shù)據(jù)
#3.計算合并數(shù)據(jù)
data= session.run(me)
4. 存儲標(biāo)量數(shù)據(jù)
#
#4.合并數(shù)據(jù)用IO寫入文件
writer.add_summary(data,i)
5. 完整代碼
#coding=utf-8
import numpy as np
import tensorflow as tf
#1.scalar數(shù)據(jù)
rd1=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd1",rd1)
rd2=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd2",rd2)
#2.數(shù)據(jù)合并
me=tf.summary.merge_all()
#2.圖執(zhí)行
session=tf.Session()
#創(chuàng)建一個圖數(shù)據(jù)IO寫入器
writer=tf.summary.FileWriter("./scalar",graph=session.graph)
init_op= tf.global_variables_initializer()
session.run(init_op)
#寫100個隨機變量
for i in range(100):
#3.計算合并數(shù)據(jù)
data= session.run(me)
#4.合并數(shù)據(jù)用IO寫入文件
writer.add_summary(data,i)
#關(guān)閉圖寫入器
writer.close()
6. 可視化效果
- 使用tensorboard工具,啟動web app服務(wù)后偶妖,可以看到如下可視化效果姜凄。
更多復(fù)雜的情況,可以參考后面神經(jīng)網(wǎng)絡(luò)中更為復(fù)雜的實現(xiàn)趾访。
【資源】
代碼列表:
- t02_graph.py
- t02_scalar.py
文件下載:【 下載 】