1. 程式人生 > >tensorflow使用及常見錯誤排除

tensorflow使用及常見錯誤排除

“ 開源,共享 ” ---- 享受code帶來的樂趣

background:在使用 tensorboard 的時候遇見了很多莫名奇妙的bug,經過很長時間的debug,問題得以解決,現將自己的經驗分享,希望可以幫助更多的小夥伴。

TensorBoard是Tensorflow視覺化工具,可以用來展現TensorFlow影象,繪製圖像生成的定量指標圖以及附加資料。它通過summary對資料進行彙總。常用操作如下:

tf.summary.FileWriter——用於將彙總資料寫入磁碟 tf.summary.scalar——對標量資料彙總和記錄 tf.summary.histogram——記錄資料的直方圖 tf.summary.image——將影象寫入summary tf.summary.merge——對各類的彙總進行一次合併 tf.summary.merge_all——合併預設影象中的所有彙總

下面來看一下tensorboard的具體使用方法:

width = tf.placeholder("int32",name='width')
height = tf.placeholder("int32",name='height')
area = tf.multiply(width,height,name='area')

with tf.Session() as sess:
    init = tf.global_variables_initializer();
    sess.run(init)
    print('area=',sess.run(area,feed_dict={width:6,height:8}))
logpath = 'log'
tf.summary.merge_all()  #彙總資料
train_writer = tf.summary.FileWriter(logpath,sess.graph)   #將日誌寫入logpath路徑下

在執行上述程式碼後,在當前目錄的logpath(此處為'log')下生產日誌檔案,如下圖所示:

log截圖

tensorboard就是將log目錄下生成的日誌檔案 視覺化,使用方法為:在命令列視窗執行 tensorboard --logdir=logpath 命令。

先給出我失敗的例子,如下:

執行生成日誌檔案後,在 Terminal 中輸入命令,具體情況如下圖:

tensorboard執行截圖

點選 連結,理論上就會看到相應的計算圖,但事實並不是如此,顯示如下:

錯誤提示

 理論可以顯示出來的啊,為什麼出現這種情況?一臉懵逼的我開啟了我的試錯之路。。。。。。

經過各種嘗試,終於解決了,如圖所示:

成功提示

原來是因為這樣: 在pycharm中,指令碼執行後,相關變數並不會同步到下方的 Terminal 的視窗,導致在上面日誌路徑中,並不能識別logpath變數,導致tensorboard命令找不到日誌檔案,因此失敗。

解決方案:就是新增實際的log路徑,具體操作如下圖:

正確操作截圖

注意:當前目錄在C:\Users\Administrator.SXCSXC-HCQ18TTH\PycharmProjects\TensorFlow\tensorflow,從上面專案目錄截圖可以看到,log資料夾就位於tensorflow裡面,故只需寫子目錄就好,即 “log”(必須用"雙引號"括起來),這樣tensorboard命令就可以找到日誌檔案了,問題得以解決。 當然這個方法並不是只適用於pycharm軟體,在微軟自帶的 命令列視窗 中,同樣也可以實現,命令為:tensorboard --logdir="日誌檔案的絕對路徑/相對路徑"。