濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Pytorch可視化之Visdom使用實(shí)例

Pytorch可視化之Visdom使用實(shí)例

熱門標(biāo)簽:百應(yīng)電話機(jī)器人總部 旅游廁所地圖標(biāo)注怎么弄 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 南昌地圖標(biāo)注 西青語音電銷機(jī)器人哪家好 無錫智能外呼系統(tǒng)好用嗎 宿州電話機(jī)器人哪家好 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 地圖標(biāo)注與注銷

一、Visdom簡介

Visdom是由Facebook公司開發(fā)的一個(gè)進(jìn)行數(shù)據(jù)可視化的Web應(yīng)用程序,支持Torch、Numpy、Pytorch這3個(gè)庫的創(chuàng)建、管理和分享實(shí)時(shí)的數(shù)據(jù)可視化結(jié)果。

二、安裝和運(yùn)行

可直接使用pip進(jìn)行安裝,命令如下:

pip install visdom

安裝過程如下:

安裝完成后,運(yùn)行下面的代碼啟動(dòng)visdom服務(wù)器(運(yùn)行需要時(shí)間,需要稍等一下;下圖中的報(bào)錯(cuò)ERROR我沒有管,不影響正常運(yùn)行):

python -m visdom.server

按照提示,在瀏覽器中輸入http://localhost:8097就可以訪問visdom了。初始界面如下圖所示,是一個(gè)沒有任何視窗的main環(huán)境。

三、可視化例子

1、輸出Hello World!

打開開發(fā)工具(我用的是Pycharm2020.3),新建程序文件,輸入以下代碼:

import visdom
 
vis = visdom.Visdom()
vis.text("Hello World!")

點(diǎn)擊運(yùn)行,返回查看瀏覽器。這時(shí)瀏覽器會(huì)出現(xiàn)一個(gè)視窗,內(nèi)容為“Hello World!”。

 拖拽視窗右下角箭頭處(如圖綠框處)可對(duì)視窗大小進(jìn)行縮放,拖動(dòng)視窗頂部橫條(如圖紅框處)可以移動(dòng)視窗。

2、顯示圖像

visdom可以直接顯示Tensor格式的圖像數(shù)據(jù)。

打開開發(fā)工具,新建程序文件,輸入以下代碼:

import visdom
from PIL import Image
import torchvision.transforms.functional as TF
 
demo_pic = Image.open("1.jpg")
img_tensor = TF.to_tensor(demo_pic)
vis = visdom.Visdom()
vis.image(img_tensor)

結(jié)果如下圖所示:

 可以用images()函數(shù)同時(shí)顯示多張圖片,代碼如下:

import visdom
from PIL import Image
import torchvision.transforms.functional as TF
import torch
 
demo_pic = Image.open("1.jpg")
img_tensor = TF.to_tensor(demo_pic)
img_tensors = torch.Tensor([img_tensor.numpy(), img_tensor.numpy()])
vis = visdom.Visdom()
vis.images(img_tensors)

結(jié)果如下:

3、繪制散點(diǎn)圖

使用scatter()函數(shù)可以繪制二維或者三維的散點(diǎn)圖。代碼如下:

import visdom
import numpy as np
import torch
 
Y = np.random.rand(100)
vis = visdom.Visdom()
# vis = visdom.Visdom(env='my_wind')#設(shè)置環(huán)境窗口的名稱是'my_wind',如果不設(shè)置默認(rèn)為main
# 2—D
twoD_scatter = vis.scatter(X=torch.rand(100, 2),
                          Y=(Y + 1.5).astype(int), # 轉(zhuǎn)換成100個(gè)1或2的整數(shù)
                          opts=dict(
                              legend=['Apples', 'Pears'], # 圖例名稱
                              xtickmin=-1, # 設(shè)置x坐標(biāo)軸下限
                              xtickmax=2.5, # 設(shè)置x坐標(biāo)軸上限
                              xtickstep=0.5, # 設(shè)置x坐標(biāo)軸間隔
                              ytickmin=-1,
                              ytickmax=2.5,
                              ytickstep=0.5,
                              markersymbol='dot' # 設(shè)置數(shù)據(jù)顯示樣式
                          ),
                          )
# 3-D
# 3d scatterplot with custom labels and ranges
threeD_scatter = vis.scatter(X=np.random.rand(100, 3),
                             Y=(Y + 1.5).astype(int),
                             opts=dict(
                                 legend=['Men', 'Women'],
                                 markersize=5, # 標(biāo)記大小
                                 xtickmin=0,
                                 xtickmax=2,
                                 xlabel='Arbitrary', # 標(biāo)簽
                                 xtickvals=[0, 0.75, 1.6, 2], # 設(shè)置坐標(biāo)軸顯示值
                                 ytickmin=0,
                                 ytickmax=2,
                                 ytickstep=0.5,
                                 ztickmin=0,
                                 ztickmax=1,
                                 ztickstep=0.5,
                             )
                             )

運(yùn)行結(jié)果如下圖所示:

  如果想要通過程序?qū)崿F(xiàn)散點(diǎn)圖參數(shù)的更新,可以使用update_window_opts()函數(shù),代碼如下:

vis.update_window_opts(
    win=twoD_scatter,
    opts=dict(
        legend=['Apples', 'Pears'],
        xtickmin=0,
        xtickmax=1,
        xtickstep=0.5,
        ytickmin=0,
        ytickmax=1,
        ytickstep=0.5,
        markersymbol='dot'
    )
)

update_window_opts()傳入兩個(gè)參數(shù),第一個(gè)是視窗的實(shí)例,例子中是twoD_scatter;第二個(gè)是更新的參數(shù)字典opts。

更新后結(jié)果如下圖所示:

4、繪制線條

4.1 繪制一條直線

代碼如下:

import visdom
import numpy as np
vis = visdom.Visdom(env='my_windows')  # 設(shè)置環(huán)境窗口的名稱,如果不設(shè)置名稱就默認(rèn)為main
# 繪制一條直線
x = list(range(10))
y = list(range(10))
# 使用line函數(shù)繪制直線 并選擇顯示坐標(biāo)軸
vis.line(X=np.array(x), Y=np.array(y), opts=dict(showlegend=True))

結(jié)果如圖所示:

4.2 繪制兩條直線

代碼如下:

# 繪制兩條直線
import visdom
import numpy as np
vis = visdom.Visdom(env='my_windows')
x = list(range(10))
y = list(range(10))
z = list(range(1,11))
vis.line(X=np.array(x), Y=np.column_stack((np.array(y), np.array(z))),  opts=dict(showlegend=True))

結(jié)果如圖所示:

4.3 繪制正弦曲線

代碼如下:

import visdom
import torch
vis = visdom.Visdom(env='sin')
x = torch.arange(0, 100, 0.1)
y = torch.sin(x)
vis.line(X=x,Y=y,win='sin(x)',opts=dict(showlegend=True))

結(jié)果如圖所示:

參考文獻(xiàn)

Pytorch深度學(xué)習(xí)入門--曾芃壹

https://www.pythonf.cn/read/3068

總結(jié)

到此這篇關(guān)于Pytorch可視化之Visdom使用的文章就介紹到這了,更多相關(guān)Pytorch可視化Visdom內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pytorch + visdom CNN處理自建圖片數(shù)據(jù)集的方法
  • pytorch + visdom 處理簡單分類問題的示例
  • pytorch visdom安裝開啟及使用方法

標(biāo)簽:許昌 渭南 辛集 贛州 濰坊 雅安 西安 七臺(tái)河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pytorch可視化之Visdom使用實(shí)例》,本文關(guān)鍵詞  Pytorch,可視化,之,Visdom,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Pytorch可視化之Visdom使用實(shí)例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Pytorch可視化之Visdom使用實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    得荣县| 闽清县| 通州市| 三门县| 乐安县| 莲花县| 宁波市| 鹿泉市| 康定县| 南昌市| 黄陵县| 砀山县| 太白县| 曲阜市| 商洛市| 武川县| 钟山县| 博乐市| 宁城县| 桐庐县| 吕梁市| 兴国县| 乐安县| 安远县| 许昌县| 洪泽县| 甘南县| 绩溪县| 博罗县| 平阳县| 准格尔旗| 永济市| 石柱| 黄陵县| 溆浦县| 巴彦淖尔市| 海阳市| 定边县| 永丰县| 临邑县| 仙桃市|