PyTorch?可視化工具TensorBoard和Visdom
一、TensorBoard
TensorBoard 一般都是作為 TensorFlow 的可視化工具,與 TensorFlow 深度集成,它能夠展現(xiàn) TensorFlow 的網(wǎng)絡(luò)計(jì)算圖,繪制圖像生成的定量指標(biāo)圖以及附加數(shù)據(jù)等。
此外,TensorBoard 也是一個(gè)獨(dú)立工具,在 PyTorch 中也可使用它進(jìn)行可視化。
1、安裝:
pip install tensorboard
2、啟動:
tensorboard --logdir="日志目錄"
啟動 tensorboard 時(shí),可指定 logdir、port(默認(rèn)6006)、host(默認(rèn)localhost)等參數(shù):

3、Tensorboard 可視化演示(PyTorch 框架):
訓(xùn)練模型,導(dǎo)入tensorboard. SummaryWriter 保存loss、accuracy 等日志信息。
# 導(dǎo)入SummaryWriter
from torch.utils.tensorboard import SummaryWriter
...
# 創(chuàng)建SummaryWriter實(shí)例,指定log_dir的位置
summaryWriter = SummaryWriter(log_dir="/Users/liyunfei/PycharmProjects/python3practice/06DL/fcnn/logs")
...
# 模型訓(xùn)練時(shí),寫入train_loss、test_loss、score等信息
summaryWriter.add_scalars("loss", {"train_loss_avg": train_loss_avg, "test_loss_avg": test_loss_avg}, epoch)
summaryWriter.add_scalar("score", score, epoch)
啟動 TensorBoar ,訓(xùn)練過程可視化。
1)啟動命令:
tensorboard --logdir=/Users/liyunfei/PycharmProjects/python3practice/06DL/fcnn/logs

二、Visdom
Visdom 是 Facebook 專門為 PyTorch 開發(fā)的一款可視化工具,能夠支持“遠(yuǎn)程數(shù)據(jù)”的可視化,支持 Torch 和 Numpy。GitHub 地址:https://github.com/fossasia/visdom

1、安裝:
pip install visdom
2、啟動:
python -m visdom.server
-m 是以模塊服務(wù)啟動
如果是 linux/mac-os 環(huán)境,可以使用以下命令啟動運(yùn)行在后臺
nohup python -m visdom.server &
啟動 Visdom 時(shí),可以指定 port(默認(rèn)8097)、hostname(默認(rèn)localhost)等其它參數(shù):
usage: server.py [-h] [-port port] [--hostname hostname] [-base_url base_url] ? ? ? ? ? ? ? ? ?[-env_path env_path] [-logging_level logger_level] ? ? ? ? ? ? ? ? ?[-readonly] [-enable_login] [-force_new_cookie] ? ? ? ? ? ? ? ? ?[-use_frontend_client_polling]
3、Visdom 可視化演示
1)啟動 Visdom:
python -m visdom.server -port 8097
2)啟動成功如下:

3)訓(xùn)練過程可視化代碼:
# 導(dǎo)入visdom包 import visdom # 創(chuàng)建Visdom對象,連接服務(wù)端,指定env環(huán)境(不指定默認(rèn)env="main") viz = visdom.Visdom(server='http://localhost', port=8097, env='liyunfei') ... viz.line([0.], [0], win='train_loss', opts=dict(title='train_loss')) viz.line([0.], [0], win='accuracy', opts=dict(title='accuracy')) ... # 模型訓(xùn)練時(shí),實(shí)時(shí)可視化loss、accuracy等信息。 viz.line([train_loss_avg], [epoch], win='train_loss', update='append') viz.line([accuracy], [epoch], win='accuracy', update='append')
4)可視化結(jié)果:

5)其它操作——可視化一張/多張圖片:
示例:
import visdom import numpy as np viz = visdom.Visdom(server='http://localhost', port=8097, env='liyunfei') # 一張圖片 viz.image( ? ? np.random.rand(3, 512, 256), ? ? opts=dict(title='Random!', caption='How random.'), ) # 多張圖片 viz.images( ? ? np.random.randn(20, 3, 64, 64), ? ? nrow=5, ? ? opts=dict(title='Random images', caption='How random.') )
效果:

6)Visdom 的更多可視化 API(常用的是 line、image、text):
vis.scatter : 2D 或 3D 散點(diǎn)圖
vis.line : 線圖
vis.stem : 莖葉圖
vis.heatmap : 熱力圖
vis.bar : 條形圖
vis.histogram: 直方圖
vis.boxplot : 箱型圖
vis.surf : 表面圖
vis.contour : 輪廓圖
vis.quiver : 繪出二維矢量場
vis.image : 圖片
vis.text : 文本
vis.mesh : 網(wǎng)格圖
vis.save : 序列化狀態(tài)
到此這篇關(guān)于PyTorch 可視化工具TensorBoard和Visdom的文章就介紹到這了,更多相關(guān)PyTorch 可視化工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3中對json格式數(shù)據(jù)的分析處理
這篇文章主要介紹了Python3中對json格式數(shù)據(jù)的分析處理,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Python/Django后端使用PIL Image生成頭像縮略圖
這篇文章主要為大家詳細(xì)介紹了Python/Django后端使用PIL Image生成頭像縮略圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
Python利用zhdate模塊實(shí)現(xiàn)農(nóng)歷日期處理
zhdate模塊統(tǒng)計(jì)從1900年到2100年的農(nóng)歷月份數(shù)據(jù)代碼,支持農(nóng)歷和公歷之間的轉(zhuǎn)化,并且支持日期差額運(yùn)算。本文將利用這一模塊實(shí)現(xiàn)農(nóng)歷日期的處理,需要的可以參考一下2022-03-03
使用Python實(shí)現(xiàn)簡單的學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

