visdom 使用教程

visdom安裝與啓動服務

安裝visdom

pip install visdom

打開服務

python -m visdom.server

瀏覽器中打開對應的網址。
在這裏插入圖片描述
在這裏插入圖片描述

visdom常用功能

首先創建一個新的環境,如不創建則默認在main環境下

#_*_coding:utf-8 _*_
import numpy as np
import visdom
import time

viz = visdom.Visdom(env="Test1") # 創建環境名爲Test1

image窗口:圖像顯示與更新窗口顯示

下面代碼在一個image窗口中不斷更新顯示圖像

#單張圖像顯示與更新demo
image = viz.image(np.random.rand(3,256,256),opts={'title':'image1','caption':'How random.'})
for i in range(10):
    viz.image(np.random.randn( 3, 256, 256),win = image)
    time.sleep(0.5)

在這裏插入圖片描述

images窗口:多個圖像顯示與更新窗口顯示

#多圖像顯示與更新demo
images = viz.images(
        np.random.randn(20, 3, 64, 64),
        opts=dict(title='Random images', caption='How random.',nrow=5)
    )
for i in range(10):
    viz.images(np.random.randn(20, 3, 64, 64),win = images)
    time.sleep(0.5) 

在這裏插入圖片描述

text窗口:顯示文本與更新文本

#text 顯示與更新顯示demo,將在窗口中連續打印字符
text = viz.text('Hello World !')
strForOut = "This is a string for you to print!"
out = ""
for i in range(len(strForOut)):
    out = out + strForOut[i]
    viz.text(out,win = text)
    time.sleep(0.2)

在這裏插入圖片描述

line窗口:繪製折線圖與更新折線圖

#繪畫折線圖演示
x=0
name=['acc','loss','loss2']
for i in range(50):
    y = np.random.randint(5, size=(1, 3))
    viz.line(Y=y,X=np.ones(y.shape)*x,
                    win='line',
                    opts=dict(legend=name,
                        title='line test',
                        width=800,
                        height=800,
                        xlabel='Time',
                        ylabel='Volume'),
                    update=None if x == 0 else 'append'
                    )
    time.sleep(0.1)
    x+=1

在這裏插入圖片描述

scatter窗口:繪製散點圖與更新散點圖

# 繪製散點圖演示 二維
colors = np.random.randint(0, 255, (3, 3,))#第一維3表示該數據可以分爲三類,以三種顏色的三點來比表示
win = viz.scatter(
    X=np.random.rand(255, 2),#表示要展示的散點數據
    #Y=(np.random.rand(255) + 1.5).astype(int),
    Y=np.random.randint(1,4,(255)),#每一個數據的類別,將以其對應的colors中的顏色來顯示
    opts=dict(
        markersize=5,
        markercolor=colors,
        legend=['1', '2','3'],
        markersymbol = 'cross-thin-open'
    ),
)
# 繪製散點圖演示 三維
colors = np.random.randint(0, 255, (3, 3,))#第一維3表示該數據可以分爲三類,以三種顏色的三點來比表示
win = viz.scatter(
    X=np.random.rand(255, 3),#表示要展示的散點數據
    #Y=(np.random.rand(255) + 1.5).astype(int),
    Y=np.random.randint(1,4,(255)),#每一個數據的類別,將以其對應的colors中的顏色來顯示
    opts=dict(
        markersize=5,
        markercolor=colors,
        legend=['1', '2','3'],
        markersymbol = 'cross-thin-open'
    ),
)

在這裏插入圖片描述

#實時更新繪製散點圖
legend=['1', '2','3']
Scatter = viz.scatter(
    X=np.array([[0,0]]),
    Y=np.array([1]),
    opts=dict(
        markersize=5,
        legend=legend,
        # markersymbol = 'cross-thin-open'
        ),
    )


for i in range(20):
    X = np.random.rand(1,2)
    Y = np.random.randint(1,4,1)
    print(Y)

    viz.scatter(
        X=X,
        Y=Y,
        win=Scatter,
        update= 'append',
        name = legend[Y[0]-1],
        opts=dict(
            markersize=5,
            # markersymbol = 'cross-thin-open'
            )
    )
    time.sleep(0.5)

在這裏插入圖片描述
更多應用請參考官方demo:
https://github.com/facebookresearch/visdom/blob/master/example/demo.py

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章