在深度學習模型訓練的過程中,常常需要實時監聽並視覺化一些資料,如損失值loss,正確率acc等。在tensorflow中,最常使用的工具非tensorboard莫屬;在pytorch中,也有類似的tensorboardx,但據說其在張量資料載入的效率方面不如visdom。visdom是facebook開發的一款視覺化工具,其實質是一款在網頁端的web伺服器,對pytorch的支援較好。
visdom的安裝比較簡單,可以直接使用pip命令。
#執行安裝命令後,可以執行以下命令啟動visdom。visdom 安裝指令
pip install visdom
#啟動 visdom web伺服器
將**複製後在瀏覽器中開啟,就可以看到visdom的主介面。
這裡以監聽損失值loss資料,準確率acc資料及視覺化影象等方面簡要介紹visdom的使用。
在模型訓練過程中,loss是最常監聽的資料,這裡就以loss的監聽為例,使用visdom視覺化loss的變化過程。為了使**更加簡潔,這裡以for迴圈代替模型逐輪訓練的過程,loss值則在每個迴圈內部隨機產生。
from visdom importvisdom
import
numpy as np
import
time
#將視窗類例項化
viz =visdom()
#建立視窗並初始化
viz.line([0.], [0], win='
train_loss
', opts=dict(title='
train_loss'))
for global_steps in range(10):
#隨機獲取loss值
loss = 0.2 * np.random.randn() + 1
#更新視窗影象
#將視窗類例項化
viz =visdom()
#建立視窗並初始化
viz.line([[0.,0.]], [0], win='
train
', opts=dict(title='
loss&acc
', legend=['
loss
', '
acc'
]))for global_steps in range(10):
#隨機獲取loss和acc
loss = 0.1 * np.random.randn() + 1acc = 0.1 * np.random.randn() + 0.5
#更新視窗影象
viz.line([[loss, acc]], [global_steps], win='
train
', update='')
#延時0.5s
在處理影象任務時,還可以用visdom對影象進行視覺化。
from visdom importvisdom
import
numpy as np
import
cv2import
torch
#使用opencv讀取資料
#opencv按照bgr讀取,而visdom預設按照rgb顯示,因此要進行通道轉換
img =cv2.cvtcolor(img, cv2.color_bgr2rgb)
#visdom類似於pytorch中的卷積模型,接收的資料都要求通道數在前
img = np.transpose(img, (2, 0, 1))
img =torch.from_numpy(img)
#視覺化影象
visdom可以同時在主面板中開啟多個視窗,執行上面3個視覺化程式後,主面板如下所示:
pytorch 使用visdom進行視覺化
相比tensorbordx,visdom重新整理更快,介面體驗也良好,首先是visdom的安裝,與普通的python庫一樣,直接pip install visdom即可 成功安裝後,在控制台下輸入python m visdom.server 複製http localhost 8097,輸入瀏覽器即可...
使用visdom視覺化pytorch訓練過程
1 安裝 pip install visdom 或者conda install c conda forge visdom 2 啟動服務 python m visdom.server 瀏覽器輸入http localhost 8097檢視 3 使用 參考 from visdom import visdo...
視覺化工具 Visdom
使用pytorch進行模型訓練時,僅僅通過觀察print的輸出是不夠的,有時候需要通過一些專業的工具來將損失值,訓練過程中產生的影象等資料展示出來,這個時候就可以借助visdom來實現資料的視覺化。官方教程 示例 pip install visdom python m visdom.server 如...