人工智慧-Tensorboard 視覺化好幫手1

 這次我們會介紹如何視覺化神經網絡。因為很多時候我們都是做好了一個神經網絡,但是沒有一個圖像可以展示給大家看。這一節會介紹一個TensorFlow的視覺化工具 — “tensorboard”通過使用這個工具我們可以很直覺的看到整個神經網路的結構、框架。以前幾章的代碼為例:相關程式碼通過tensorflow的工具大致可以看到,今天要顯示的神經網路差不多是這樣子的。
                                                                                                        
                
                                                                 圖1 神經網路


同時我們也可以展開看每個layer中的一些具體的結構:

      
                                                          圖2 神經層

通過閱讀代碼和之前的圖片我們大概知道了此處是有一個輸入層(inputs),一個隱藏層(hidden layer),還有一個輸出層(output) 現在可以看看如何進行可視化。

建立視覺化:

首先從input開始

                       圖3 input

對於輸入我們進行如下修改:首先,可以為xs指定名稱為x_in:

                   圖4 指定xs input名稱

然後再次對ys指定名稱y_in:
 
                   圖5 指定ys input名稱

這裡指定的名稱將來會在視覺化的多層輸入中顯示出來,使用tf.name_scope('inputs')可以將xs和ys包含進來,形成一個大的層疊,並附有名字就是with tf.name_scope()方法裡的參數
 
              圖6 視覺化函數

接下來開始編輯layer,請看編輯前的程式片段:

                        圖7 神經層網路

這裡的名字應該叫layer,下面是編輯後的:
 
                  圖8 視覺化layer神經層網路

在定義完大的框架圖層之後,同時也需要定義每個一個'框架'裡面的小零件:(重量偏差和激活函數):現在先對重量定義:定義的方法同上,可以使用tf.name.scope( )方法,同時也可以在Weights中指定名稱W。即為
 
                                圖9 視覺化weights變數

接著繼續定義biases,定義方式同上


 

                                   圖10 視覺化biases變數


activation_function的話,可以暫時忽略。因為當你自己選擇使用tensorflow中的激勵函數(activation function)的時候,tensorflow會添加名稱。最終,layer形式如下。
  

                        圖11 視覺化神經層函數

效果如下:(有沒有看見剛才定義layer裡面的“內部構造”呢?)
    
                                    圖12 視覺化神經層

最後編輯損失部分:將與tf.name_scope()添加在loss上方,並為它開始稱為loss
 

                   圖13 loss視覺化


這語法就是“繪製” loss了,如下:
   
                                圖14 loss視覺圖層

使用tf.name_scope()再次對train_step部分進行編輯,如下
 

                圖15 train視覺化

我們需要使用tf.summary.FileWriter() (tf.train.SummaryWriter() 這種方式已經在tf >= 0.12 版本中放棄) 將上面'繪畫'出的圖保存到一個目錄中,以方便後期在瀏覽器中可以瀏覽。這個方法中的第二個參數需要使用sess.graph,因此我們需要把這句話放在獲取session的後面。這裡的graph是將前面定義的框架信息收集起來,然後放在logs/目錄下面。
 
                 圖15 視覺圖存至logs檔案夾

最後在你的terminal(終端)中,使用以下命令。
 
圖16 觀看視覺圖指令

同時將終端中輸出的網址複製到瀏覽器中,便可以看到之前定義的視覺圖框架了。

tensorboard 還有很多其他的參數,希望大家可以多多了解,可以使用tensorboard --help 查看tensorboard的詳細參數。

 

可能會遇到的問題:

(1) 而且與 tensorboard 兼容的瀏覽器是“Google Chrome”。使用其他的瀏覽器不保證所有內容都能正常顯示。

(2) 同時注意,如果使用 http://0.0.0.0:6006 網址打不開的朋友們,請使用 http://localhost:6006,大多數朋友都是這個問題。

 (3) 請確保你的tensorboard 指令是在你的logs 文件根目錄執行的。如果在其他目錄下,比如Desktop等…可能不會成功看到圖。比如在下面這個目錄,你要cd 到project 這個地方執行/project > tensorboard --logdir logs。


 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論