[PyTorch] Lab10.3 - Visdom

Yun Geonil·2021년 3월 6일
0

📌 학습 목표


  • Visdom 설치 및 실행
  • visdom 사용

Visdom 설치 및 실행

  • Visdom 설치

    pip install visdom

  • Visdom 서버 켜기

    python -m visdom.server

visdom 사용

  • import visdom
import visdom
vis = visdom.Visdom()
  • Text
vis.text('Hello, world!', env='main')
  • image
a = torch.randn(3, 200, 200)
vis.image(a)
  • MNIST data

MNIST 데이터를 그려본다.

MNIST = dsets.MNIST(root='MNIST_data/', 
                          train=True, 
                          transform=torchvision.transforms.ToTensor(),
                          download=False)
data = MNIST.__getitem__(0)
vis.images(data[0])

DataLoader를 이용해 여러개의 이미지도 출력할 수 있다.

data_loader = torch.utils.data.DataLoader(dataset = MNIST,
                                         batch_size=32,
                                         shuffle=False)
for num, value in enumerate(data_loader):
    value = value[0]
    vis.images(value)
    break
  • Line

Line을 그릴 수 있다. X를 지정하지 않으면 0~1이 디폴트이다.

Y_data = torch.randn(5)
plt = vis.line(Y=Y_data)
X_data = torch.Tensor([1, 2, 3, 4, 5])
plt = vis.line(Y=Y_data, X=X_data)

Line update를 진행할 수 있다.

y_append = torch.randn(1)
x_append = torch.Tensor([7])

vis.line(Y=y_append, X=x_append, win=plt, update = 'append')

여러 Line을 그릴 수 있다.

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)

라인 정보를 출력할 수 있다.

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)
              )

0개의 댓글