bug合集|艱難的TensorBoard可視化之路

閱讀本文大概須要 6 分鐘  "


前言python


今天上午在製做演示案例的時候,須要使用TensorBoard將訓練過程可視化出來,本來想着很簡單的,可是仍是遇到了一些bug,如今就把當時我遇到的一些問題整理出來,請看文章。


bug從何而來


咱們先來寫一個小的demo:借用keras來加載FashionMNIST數據集,並自定義訓練模型,其網絡層級結構以下圖所示:
web



核心層代碼以下所示:


def __init__(self):
self.cnn_1 = tf.keras.layers.Conv2D(32,3,activation=tf.nn.relu)
self.batch_norm_1 = tf.keras.layers.BatchNormalization()

self.cnn_2 = tf.keras.layers.Conv2D(64,3,activation=tf.nn.relu)
self.batch_norm_2 = tf.keras.layers.BatchNormalization()

self.cnn_3 = tf.keras.layers.Conv2D(128,3,activation=tf.nn.relu)
self.batch_norm_3 = tf.keras.layers.BatchNormalization()

self.last_dense = tf.keras.layers.Dense(10,activation=tf.nn.softmax)

如今咱們的需求是將訓練過程可視化展現出來,所以咱們須要初始化TensorBoard,請看以下代碼:vim


# 初始化tensorboard
tensorboard = tf.keras.callbacks.TensorBoard(histogram_freq=1)
model.fit(x=train_images,y=train_labels,epochs=20,verbose=2,callbacks=[tensorboard])
model.evaluate(x=test_images,y=test_labels)

接着,咱們進入終端執行以下命令:bash


tensorboard --logdir=/full_path_to_your_logs/train

小夥伴們請注意,我遇到的bug就是從這裏開始的,請看問題:
微信

  1. 如何進入Mac下的 Anaconda prompt
  2. zsh:command not found:tensorboard 問題的解決方法。


Mac下的Anaconda prompt


首先,咱們明確一點,mac下的anaconda prompt就是自帶的terminal,咱們來打開terminal,輸入以下命令,發現報錯信息以下所示:
網絡



咱們發現錯誤信息提示咱們並不能找到tensorboard的的相關命令,請看解決方法。
app


咱們繼續在終端中輸入以下命令:編輯器


vim ~/.zshrc

並向.zshrc文件中添加以下命令:
flex


source ~/.bash_profile


執行完上述操做以後,咱們保存並退出vim,在終端中執行以下命令:
ui


source ~/.zshrc

執行完上述全部操做以後,咱們發現terminal中命令行的最前面多了一個(base)字樣,咱們接着繼續輸入tensorboard,發現以下信息:


咱們發現,此時的報錯信息再也不是...command not found...之類的信息,而是提示咱們在使用tensorboard的時候應該加上logdir或db等參數信息。


好的,解決了上述問題以後,咱們回到上文提到的那個例子當中。


首先,給小夥伴們看一下咱們的項目目錄:



接着,咱們來看具體的操做:



最後,咱們經過以下地址(http://localhost:6006/)便可在網頁端查看可視化過程:



that's great,解決了bug,接下來咱們就能夠隨心所欲啦~


...command not found...


其實在上文中,咱們在講解mac下的anaconda prompt時,就已經說起到了一種解決方法,接下來,咱們看第二種解決方法。


仍然是在項目文件目錄下,咱們輸入以下命令:


alias tensorboard='python3 -m tensorboard.main'

執行完上述命令以後,咱們接着執行tensorboard的啓動命令,請看下圖:



tensorboard啓動成功,以上就是我在啓動tensorboard過程當中遇到的幾個bug,小夥伴們學會了嗎?但願可以給各位小夥伴帶來一絲絲幫助!




- End -

 往期推薦 

🔗


你要的對象都在這啦|how to create Object in JavaScript?


What is super() in JavaScript?


ES6中模塊導入遇到的問題及其解決辦法


東哥最寵粉了|包郵送書啦


【帶你成爲pyq最靚的仔】朋友圈九宮格(一)之圖片切割篇



本站文章搜索推薦





長按關注





本文分享自微信公衆號 - hahaCoder(hahaCoder)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索