!pip install visdom
시각화 된 이미지들은 localhost:8097 서버에서 확인 가능
import visdom
vis = visdom.Visdom()
vis.image(torch.Tensor(3,3,28,28) # 한 개
vis.images(torch.Tensor(3,3,28,28) # 여러개(3)
vis.close(env="main")
Y_data = torch.randn(5)
plt = vis.line(Y=Y_data)
X축 을 지정하지 않을 경우 0~1사이 값으로 생성 됨
X_data = torch.Tensor([1,2,3,4,5])
plt = vis.line(Y=Y_data, X=X_data)
Y_append = torch.randn(1)
X_append = torch.Tensor([6])
vis.line(Y=Y_append, X=X_append, win=plt, update="append")
Y, X에 업데이트 할 값을 넣어주고 win에 업데이트 할 그래프(window)를 넣어줌.
num = torch.Tensor(list(range(0,10)))
num = num.view(-1,1)
num = torch.cat((num,num),dim=1)
plt = vis.line(Y=torch.randn(10,2), X = num)
shape를 맞추어서 넣어주면 되는 듯 하다.
딕셔너리 형태로 그래프 제목, 범례 등의 옵션 지정할 수 있음
plt = vis.line(Y=Y_data, X=X_data, opts = dict(title="Test", showlegend=True)
plt = vis.line(Y=Y_data, X=X_data, opts = dict(title="Test", legend = ["1번"], showlegend=True)
plt = vis.line(Y=torch.randn(10,2), X = num, opts = dict(title="Test", legend = ["1번", "2번"], showlegend=True)
def loss_tracker(loss_plot, loss_value, num):
vis.line(X=num,
Y=loss_value,
win = loss_plot,
update="append"
)
plt = vis.line(Y=toch.Tensor(1).zero_())
for i in range(500):
loss = torch.randn(1) + 1
loss_tracker(plt, loss, torch.Tensor([i])
이외 자세한 사용법은 visdom 에서 확인