【深度学习】PyTorch深度学习训练可视化工具visdom
PyTorch
Author:louwill
Machine Learning Lab
? ? ?在進行深度學習實驗時,能夠可視化地對訓練過程和結(jié)果進行展示是非常有必要的。除了Torch版本的TensorBoard工具TensorBoardX之外,Torch官方也提供了一款非常好用的可視化神器——visdom。visdom是一款用于創(chuàng)建、組織和共享實時大量訓練數(shù)據(jù)可視化的靈活工具。
???? 深度學習模型訓練通常放在遠程的服務器上,服務器上訓練的一個問題就在于不能方便地對訓練進行可視化,相較于TensorFlow的可視化工具TensorBoard,visdom則是對應于PyTorch的可視化工具。
安裝與啟動
???? 直接通過pip install visdom即可完成安裝,之后在終端輸入如下命令即可啟動visdom服務:
python -m visdom.server???? 啟動服務后輸入本地或者遠程地址,端口號8097,即可打開visdom主頁。
主要元素
???? visdom界面簡單,主要構(gòu)成元素包括窗口(Windows)、環(huán)境(Environments)、狀態(tài)(State)、過濾(Filter)、視圖(Views)等。
???? 環(huán)境:用于對可視化空間進行分區(qū),比如在對訓練進行可視化的時候我們可以在一個環(huán)境里對loss進行可視化,在另一個環(huán)境下對訓練的輸入輸出進行可視化。
???? 狀態(tài):visdom會自動緩存你創(chuàng)建的可視化內(nèi)容,當頁面關(guān)閉之后,重新加載便可恢復這些內(nèi)容。
???? 過濾:可用于篩選可視化窗口,快速查找。
???? 視圖:可以快速地對可視化窗口進行排列和管理。
應用示例
???? visdom將可以進行可視化的對象都放在基礎(chǔ)模塊中,包括單/多張圖像、文本、語音、視頻、svg矢量圖、屬性網(wǎng)格、matplotlib繪圖對象、序列化狀態(tài)對象等。基礎(chǔ)圖形由plotly提供,主要包括散點圖、折線圖、熱圖、莖葉圖、柱形圖、箱線圖、表面圖、等高線圖、網(wǎng)格圖等。
???? 以matplotlib繪圖對象為例進行展示。
import matplotlib.pyplot as plt from visdom import Visdom vis = Visdom() plt.plot(range(100)) vis.matplot(plt)???? visdom中顯示如下:
???? 具體到深度學習訓練時,我們可以在torch訓練代碼下插入visdom的可視化模塊:
if args.steps_plot > 0 and step % args.steps_plot == 0:image = inputs[0].cpu().datavis.image(image,f'input (epoch: {epoch}, step: {step})')vis.image(outputs[0].cpu().max(0)[1].data, f'output (epoch: {epoch}, step: {step})')vis.image(targets[0].cpu().data, f'target (epoch: {epoch}, step: {step})')vis.image(loss, f'loss (epoch: {epoch}, step: {step})')???? 將上述模塊插入到VOC 2012語義分割訓練中,效果如下:
???? 也可以監(jiān)控訓練過程中的loss變化:
???? visdom為PyTorch而生,總體來說是一款優(yōu)化的深度學習訓練可視化工具。
參考資料:
https://github.com/facebookresearch/visdom
總結(jié)
以上是生活随笔為你收集整理的【深度学习】PyTorch深度学习训练可视化工具visdom的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据竞赛】CV赛题总结:人民币面值与编
- 下一篇: 【深度学习】270篇CVPR 2020代