在深度學習領域,模型訓練是乙個必須的過程,因此常常需要實時監聽並視覺化一些資料,如損失值loss,正確率acc等。在tensorflow中,最常使用的工具非tensorboard莫屬;在pytorch中,也有類似的tensorboardx,但據說其在張量資料載入的效率方面不如visdom。visdom是facebook開發的一款視覺化工具,其實質是一款在網頁端的web伺服器,對pytorch的支援較好。
2.1 安裝
pip install visdom
2.2 啟動
類似於tensorflow的tensorboard,要使用visdom,就要先在終端開啟監聽命令
python -m visdom.server
首先,我們需要匯入visdom及所需的其它庫
from visdom import visdom
import numpy as np
import time
visdom視覺化神經網路的訓練過程大致分為3步:
3.1 監聽單一資料
# 例項化乙個視窗
wind = visdom(
)# 初始化視窗資訊
wind.line([0
.],# y的第乙個點的座標[0
.],# x的第乙個點的座標
win =
'train_loss'
,# 視窗的名稱
opts =
dict
(title =
'train_loss'
)# 影象的標例
)# 更新資料
for step in
range(10
):# 隨機獲取loss,這裡只是模擬實現
loss = np.random.randn()*
0.5+
2 wind.line(
[loss]
,[step]
,win =
'train_loss'
,update =
) time.sleep(
0.5)
3.2 監聽多條資料# 例項化視窗
wind = visdom(
)# 初始化視窗引數
wind.line([{
0.,0
.]],
[0.]
,win =
'train'
,opts =
dict
(title =
'loss&acc'
,legend =
['loss'
,'acc'])
)# 更新視窗資料
for step in
range(10
):loss =
0.2* np.random.randn()+
1 acc =
0.1* np.random.randn()+
0.5 wind.line(
[[loss, acc]],
[step]
,win =
'train'
,update =
) time.sleep(
0.5)
在處理影象資料時,可以使用visdom對影象進行視覺化
from visdom import visdom
import cv2
import numpy as np
import torch
# 讀入影象
image = cv2.imread(
'e://桌面.jpg'
)# opencv按照bgr讀取,而visdom 預設按照rgb顯示,因此要進行通道轉換
img = cv2.cvtcolor(img, cv2.color_bgr2rgb)
# visdom類似於pytorch中的卷積模型,接收的資料都要求通道數在前
img = np.transpose(img,(2
,0,1
))# 將numpy型別轉換為torch型別
img = torch.from_numpy(img)
# 視覺化影象
viz.image(img, win=
'pkq'
)
PyTorch視覺化工具visdom遠端方法
visdom是由facebook開發的pytorch訓練過程視覺化工具,類似於tensorboard。本文主要記錄在遠端伺服器上跑pytorch模型時如何在本地訪問visdom的結果。ssh遠端伺服器時繫結本地埠與遠端伺服器端口 ssh l localhost p username remote h...
Pytorch視覺化工具Visdom超簡單入門
visdom的github repo 知乎乙個教程 上次寫過visdom在伺服器端啟動的博文 這次簡單介紹下在python 裡用visdom 非常簡單 import visdom vis visdom.visdom env visual eye port 10041 env後是環境名稱,port是伺...
Git History視覺化工具
今天給大家推薦乙個開源的git提交記錄視覺化檢視工具,操作簡單,還有本地cli可以使用,最重要的是效果炫酷,非常方便!1 在github上的檔案,只需要把檔案路徑中的github.com替換為github.githistory.xyz即可,一步到位 第一種方式雖然簡單,但有些同學可能不服,因為公司專...