【tensorboardX】Pytorch使用tensorboardX可視化!超詳細!!!

文章轉自:https://www.jianshu.com/p/46eb3004beca

源碼:https://github.com/miaoshuyu/pytorch-tensorboardx-visualization

1 引言

  我們都知道tensorflow框架可以使用tensorboard這一高級的可視化的工具,爲了使用tensorboard這一套完美的可視化工具,未免可以將其應用到Pytorch中,用於Pytorch的可視化。這裏特別感謝Github上的解決方案: https://github.com/lanpa/tensorboardX

本文主要是針對該解決方案提供一些介紹。

     TensorboardX支持scalar, image, figure, histogram, audio, text, graph, onnx_graph, embedding, pr_curve and videosummaries等不同的可視化展示方式,具體介紹移步至項目Github 觀看詳情。


2 環境安裝

本教程代碼環境依賴:

python 3.6+

Pytorch 0.4.0+

tensorboardX:   pip install tensorboardX、pip install tensorflow

3 代碼教程

 TensorboardX可以提供中很多的可視化方式,本文主要介紹scalar 和 graph,其他類型相似。

3.1 scalar教程

 

對上述代碼進行解釋,首先導入:from tensorboardXimport SummaryWriter,然後定義一個SummaryWriter() 實例。在SummaryWriter()上鼠標ctrl+b我們可以看到SummaryWriter()的參數爲:def __init__(self, log_dir=None, comment='', **kwargs): 其中log_dir爲生成的文件所放的目錄,comment爲文件名稱。默認目錄爲生成runs文件夾目錄。我們運行上述代碼:生成結果爲:

當我們爲SummaryWriter(comment='base_scalar')。生成結果爲:

  當我們爲SummaryWriter(log_dir='scalar') 添加log_dir參數,可以看到第二條數據的文件名稱包括了base_scalar值。生成結果目錄爲:

接着解釋writer.add_scalar('scalar/test', np.random.rand(), epoch),這句代碼的作用就是,將我們所需要的數據保存在文件裏面供可視化使用。 這裏是Scalar類型,所以使用writer.add_scalar(),其他的隊形使用對應的函數。第一個參數可以簡單理解爲保存圖的名稱,第二個參數是可以理解爲Y軸數據,第三個參數可以理解爲X軸數據。當Y軸數據不止一個時,可以使用writer.add_scalars().運行代碼之後生成文件之後,我們在runs同級目錄下使用命令行:tensorboard --logdir runs. 當SummaryWriter(log_dir='scalar')的log_dir的參數值 存在時,將tensorboard --logdir runs 改爲 tensorboard --logdir 參數值

    最後調用writer.close()。

      點擊鏈接即可看到我們的最終需要的可視化結果。

可以分別點擊對應的圖片查看詳情。可以看到生成的Scalar名稱爲'scalar/test'與'scalar/test'一致。注:可以使用左下角的文件選擇你想顯示的某個或者全部圖片。 

3.2 Graph教程

 

 首先我們定義一個神經網絡取名爲Net1。然後將其添加到tensorboard可是可視化中。

with SummaryWriter(comment='Net1')as w:

         w.add_graph(model, (dummy_input,))

      我們重點關注最後兩句話,其中使用了python的上下文管理,with 語句,可以避免因w.close未寫造成的問題。推薦使用此方式。

       因爲這是一個神經網絡架構,所以使用 w.add_graph(model, (dummy_input,)),其中第一個參數爲需要保存的模型,第二個參數爲輸入值,元祖類型。打開tensorvboard控制檯,可得到如下結果。

   點擊Net1部分可以將其網絡展開,查看網絡內部構造。

 其他部分可以繼續一次展開查看詳情。

 

3.3 網絡訓練綜合教程

 解釋完上述兩部分知識之後,我們可以綜合運用上述兩部分內容,實現線性擬合的訓練過程中的loss可視化和模型的保存。

 我們將運行過程中loss和model分別保存,最後打開tensorboard控制檯,可以得到模型結果和loss的結果爲下圖.

         注:不同的graph的可視化可以使用上圖Run旁邊的下拉框選擇。

 

3.4 Tensorboard綜合Demo

 本Demo代碼爲TensorboardX提供的官方Demo代碼。

最終運行的所有可視化結果爲:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章