在使用tensorflow時,由於本地資源的限制,一般在遠程服務器上訓練模型,而服務器沒有圖形界面,那么在訓練過程中如何實時地訪問tensorboard可視化數據呢?
如果服務器和本地電腦連接在同一個局域網內,只需要瀏覽器中輸入(即可訪問服務器Tensorboard):
服務器ip:端口
如果不在一個局域網,這里介紹在Xshell中的方法。
在連接服務器的會話屬性中建立隧道(菜單路徑:屬性-隧道-TCP/IP轉移-添加),設置如下轉移規則:
幾個參數的含義為:
- 類型(方向):選擇local,表示從遠程主機發送到本地主機
- 源主機:本地主機,填寫localhost
- 偵聽端口:16006(也可以自己選擇一個空閑的端口),表示把目標主機的目標端口轉發到本地的偵聽端口16006
- 目標主機:服務器,填寫服務器的ip地址
- 目標端口:6006(我們需要轉發的服務器端口,tensorboard默認把數據放在6006端口)
在實時訓練時如果想查看tensorboard,可以新開一個會話(設置好隧道),在命令行運行
tensorboard --logdir="/path/to/log-directory"
然后在本地瀏覽器訪問 http://127.0.0.1:16006/ 即可看到tensorboard的可視化頁面。