Tensorboard
安裝
原本是tensorflow的可視化工具,pytorch從1.2.0開始支援tensorboard。之前的版本也可以使用tensorboardX代替。
在使用1.2.0版本以上的PyTorch的情況下,一般來說,直接使用pip安裝即可。
pip install tensorboard
這樣直接安裝之後,
有可能打開的tensorboard網頁是全白的,如果有這種問題,解決方法是解除安裝之後安裝更低版本的tensorboard。
pip uninstall tensorboard
pip install tensorboard==2.0.2
Tensorboard的使用邏輯
Tensorboard的工作流程簡單來說是
- 将代碼運作過程中的,某些你關心的資料儲存在一個 檔案夾 中:
這一步由代碼中的writer完成
- 再讀取這個 檔案夾 中的資料,用浏覽器顯示出來:
這一步通過在指令行運作tensorboard完成。
代碼體中要做的事
首先導入tensorboard
from torch.utils.tensorboard import SummaryWriter
這裡的SummaryWriter的作用就是,将資料以特定的格式存儲到剛剛提到的那個
檔案夾中。
首先我們将其執行個體化
writer = SummaryWriter('./path/to/log')
這裡傳入的參數就是指向檔案夾的路徑,之後我們使用這個writer對象“拿出來”的任何資料都儲存在這個路徑之下。
這個對象包含多個方法,比如針對數值,我們可以調用
writer.add_scalar(tag, scalar_value, global_step=None, walltime=None)
這裡的tag指定可視化時這個變量的名字,scalar_value是你要存的值,global_step可以了解為x軸坐标。
舉一個簡單的例子:
for epoch in range(100)
mAP = eval(model)
writer.add_scalar('mAP', mAP, epoch)
這樣就會生成一個x軸跨度為100的折線圖,y軸坐标代表着每一個epoch的mAP。這個折線圖會儲存在指定的路徑下(但是現在還看不到)
同理,除了數值,我們可能還會想看到模型訓練過程中的圖像。
writer.add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
writer.add_images(tag, img_tensor, global_step=None, walltime=None, dataformats='NCHW')
可視化
我們已經将關心的資料拿出來了,接下來我們隻需要在指令行運作:
tensorboard --logdir=./path/to/the/folder --port 8123
然後打開浏覽器,通路位址http://localhost:8123/即可。這裡的8123隻是随便一個例子,用其他的未被占用端口也沒有任何問題,注意指令行的端口與浏覽器通路的位址同步。
如果發現不顯示資料,注意檢查一下路徑是否正确,指令行這裡注意是
--logdir=./path/to/the/folder
而不是
--logdir= './path/to/the/folder '
另一點要注意的是tensorboard并不是實時顯示(visdom是完全實時的),而是預設30秒重新整理一次
遠端連接配接伺服器時使用tensorboard
具體做法是當你用xshell建立好連接配接後,點選下圖紅框中的屬性按鈕

然後點選屬性中的SSH下的隧道,得到如下界面
點選添加:
将偵聽端口改為16006(當然也可以是其他的,就是本機的端口),目标主機和源主機保持localhost不變,目标端口就是伺服器上打開tensorboard對應的端口6006然後點選确定之後,就建立好了伺服器端口16006與自己電腦端口6006的轉發。然後按之前的步驟打開tensorboard,在本地浏覽器中輸入127.0.0.1:16006或者localhost:16006就可以通路到伺服器上的tensorboard的資訊了
詳細教程見:
torch.utils.tensorboard - PyTorch master documentationpytorch.org