關(guān)于TensorBoard的使用以及遇到的坑記錄
TensorBoard的使用以及遇到的坑
關(guān)于TensorBoard的介紹請(qǐng)參考這篇文章,里面關(guān)于 各個(gè)儀表板的用法和說明講的很詳細(xì),就不多說了,下面主要說下遇到的問題。
先附上代碼,生成事件文件
import tensorflow as tf
#定義一個(gè)簡(jiǎn)單的計(jì)算圖,實(shí)現(xiàn)向量加法的操作
input1=tf.constant([1.0,2.0,3.0],name="input1")
input2=tf.Variable(tf.random_uniform([3]),name="input")
output=tf.add_n([input1,input2],name="add")
#生成一個(gè)寫日志的writer,并將當(dāng)前的TensorFlow計(jì)算圖寫入日志。生成的文件在當(dāng)前文件夾下
writer=tf.summary.FileWriter(".\log",tf.get_default_graph())
writer.close()
init = tf.global_variables_initializer()
tf.Session().run(init)如果順利的話,應(yīng)該會(huì)生成1個(gè)事件文件,
如圖

接下來就是使用TensorBoard進(jìn)行可視化分析了在命令行窗口輸入 tensorboard –logdir=log回車,注意不是在python的編輯環(huán)境里如spyder中,如果你這么做,
你會(huì)得到一個(gè)錯(cuò)誤
SyntaxError: can’t assign to operator
回到命令行窗口,執(zhí)行tensorboard –logdir=log

在瀏覽器中復(fù)制上面的網(wǎng)址http://DESKTOP-1Q4IB10:6006
就可以看到如下界面

沒有任何數(shù)據(jù),是不是很沮喪lol,因?yàn)槲覀兊某绦蚶锩娲_實(shí)沒有生成標(biāo)量數(shù)據(jù)的事件文件,不過我們有圖的事件數(shù)據(jù)a,點(diǎn)擊圖后就有結(jié)果了

成功的后面都有很多次失敗的經(jīng)歷,
具體說說我碰見的神坑
在上面的圖里面,一直都沒有數(shù)據(jù)?。?!。
像下面

在這篇文章里提到win10路徑的問題,我試了下還是不行,不過把log文件夾移動(dòng)到別的地方再cd的話可以成功,心里想不能每次都移動(dòng)吧,繼續(xù)找解決辦法,這篇文章提出要先激活Tensorflow環(huán)境再使用,按照里面的方法試了下,
結(jié)果如下

可以看到網(wǎng)頁(yè)的界面變了,難道是Google 的彩蛋/發(fā)呆,但是還是不能正常顯示數(shù)據(jù),只能繼續(xù)找解決辦法了,在這篇文章中,提出要將TensorBoard的程序路徑添加到系統(tǒng)的環(huán)境變量中,我沒有嘗試,如果你看完本篇文章之后還有問題,不如去試下這個(gè)。
那么話說回來,到底是哪塊的問題?就在一籌莫展的時(shí)候,看著控制臺(tái)上的命令,突然發(fā)現(xiàn)我的文件夾名“TensoBoard練習(xí) “里面有中文,在想會(huì)不會(huì)是這個(gè)問題,改成TensorBoardTest后,
運(yùn)行結(jié)果如圖

命令行中出現(xiàn)了警告,怎么回事?切換到正常環(huán)境下看看會(huì)不會(huì)再次出現(xiàn)

還是出現(xiàn),仔細(xì)看看英語,說是發(fā)現(xiàn)了不止一個(gè)事件文件,回到文件夾,確實(shí)存在兩個(gè)事件文件。

但是這兩個(gè)區(qū)別在哪里?加載時(shí)又會(huì)加載哪個(gè)?
一番研究下發(fā)現(xiàn),每運(yùn)行一次python程序,就會(huì)生成一個(gè)新的事件文件,但是這個(gè)事件文件是在前一個(gè)版本的基礎(chǔ)上再增添的一些新的內(nèi)容生成的,運(yùn)行看看具體內(nèi)容。

果然只是復(fù)制了一份數(shù)據(jù)。并且在存在多個(gè)事件文件的情況下,TensorBoard會(huì)讀取最近生成的一次事件文件。
總結(jié)
使用TensorBoard沒有特別的難,無非就是路徑問題加中文文件名,注意這兩點(diǎn)就沒事了。
注意:一開始的那張圖片里面直接使用tensorboard –logdir=log就可以,是因?yàn)槲业奈募A就在桌面。后面演示時(shí)放到E盤底下。另外像
#tensorboard --logdir=C:\Users\dbsdz\Desktop\TensorBoardTest\log 可以 #cd E://TensorBoardTest tensorboard --logdir=log 可以 #e: cd TensorBoardTest tensorboard --logdir=log 可以
這類的命令也都可以正確顯示數(shù)據(jù)。
最后
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 中PyQt5 點(diǎn)擊主窗口彈出另一個(gè)窗口的實(shí)現(xiàn)方法
這篇文章主要介紹了Python 中PyQt5 點(diǎn)擊主窗口彈出另一個(gè)窗口的實(shí)現(xiàn)方法,本文代碼實(shí)例圖文相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
python unix時(shí)間戳轉(zhuǎn)換毫秒的實(shí)現(xiàn)
Unix時(shí)間戳是一種常見的時(shí)間表示方式,本文主要介紹了python unix時(shí)間戳轉(zhuǎn)換毫秒的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Python實(shí)現(xiàn)嵌套列表的7中方法總結(jié)
這篇文章主要來給大家講解一個(gè)Python的進(jìn)階知識(shí)點(diǎn):如何將一個(gè)嵌套的大列表展開形成一個(gè)列表。小編提供了7種方法供大家學(xué)習(xí)參考,希望大家能喜歡2023-03-03
python實(shí)現(xiàn)簡(jiǎn)單的tcp 文件下載
這篇文章主要介紹了python如何實(shí)現(xiàn)簡(jiǎn)單的tcp文件下載,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
Pytest+Yaml+Excel?接口自動(dòng)化測(cè)試框架的實(shí)現(xiàn)示例
本文主要介紹了Pytest+Yaml+Excel?接口自動(dòng)化測(cè)試框架,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Django如何自定義model創(chuàng)建數(shù)據(jù)庫(kù)索引的順序
這篇文章主要介紹了Django如何自定義model創(chuàng)建數(shù)據(jù)庫(kù)索引的順序,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06
Pycharm?debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)問題
這篇文章主要介紹了Pycharm?debug程序,跳轉(zhuǎn)至指定循環(huán)條件/循環(huán)次數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
淺析python3字符串格式化format()函數(shù)的簡(jiǎn)單用法
這篇文章主要介紹了python3字符串格式化format()函數(shù)的簡(jiǎn)單用法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
Django打印出在數(shù)據(jù)庫(kù)中執(zhí)行的語句問題
這篇文章主要介紹了Django打印出在數(shù)據(jù)庫(kù)中執(zhí)行的語句,文中給大家提到了Django 查看執(zhí)行的sql語句方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07

