Visdom 사용하기 - Pytorch

Updated:

Visdom 사용해보기
Visdom 설치 및 사용 예제
  1. Visdom 설치

저는 가상환경에 pytorch가 설치되어있기 때문에 anaconda prompt를 통해 가상환경 진입 후 설치를 진행하였습니다.

  • pip install visdom

그후 아래으 커맨드로 활성화를 시켜주어야 합니다.

  • python -m visdom.server

이 커맨드를 치게 되면 본인의 서버 number인 localhost:####을 알 수 있게 됩니다. 해당 주소를 인터넷 창에 치게 되면 활성화된 것을 확인할 수 있습니다.

  1. 사용

다음은 사용 예들을 알아보도록 하겠습니다.

import visdom

vis = visdom.Visdom() # visdom 서버가 꺼져있으면 에러 발생
  • Text 띄우기
 vis.text("Hello world!", env = "main")

env는 나중에 창을 종료할 때 필요하므로 선언합니다.

  • Image 띄우기
 a = torch.randn(3, 200, 200)
 vis.image(a)

랜덤 변수를 선언 후 띄웁니다. 노이즈가 생성되는 것을 확인할 수 있습니다.

  • Image 여러 장 띄우기
 vis.images(torch.Tensor(1, 3, 28, 28))
  • MNIST dataset Emldnrl
 data = MNIST.__getitem__(0)
 print(data[0].shape)
 vis.images(data[0], env="main")
  • visdom 종료하기
 vis.close(env = "main")

다음과 같이 선어하게 되면 env를 main이라고 설정한 것들이 모두 종료되게 됩니다.

  • Line plot 띄우기
 Y_data = torch.randn(5) # x값을 넣지 않으면 x축은 무조건 0~1 값
 plt = vis.line(Y=Y_data)
 X_data = torch.Tensor([1, 2, 3, 4, 5]) # 이렇게 x값 넣으면 x축 변경됨
 plt = vis.line(Y=Y_data, X=X_data)

 # Line update
 Y_append = torch.randn(1)
 X_append = torch.Tensor([6])

 vis.line(Y=Y_append, X=X_append, win=plt, update='append')

 # multiple Line on single windows
 num =  torch.Tensor(list(range(0, 10)))
 num = num.view(-1, 1) # index를 바꾼 이유는 라인을 2개로 늘리려면 Y랑 똑같은 shape을 가지고 있는 애로 선언을 해야 함
 num = torch.cat((num, num), dim=1)

 plt = vis.line(Y=torch.randn(10, 2), X = num)

 # Line information
 plt = vis.line(Y=Y_data, X=X_data, opts = dict(title='Title', showlegend=True)) # Title 이름 설정

 plt = vis.line(Y=Y_data, X=X_data, opts = dict(title='Title', legend=['number 1'], showlegend=True)) # 라인 이름 설정

 plt = vis.line(Y=torch.randn(10, 2), X=num, opts=dict(title='Test', legend=['number 1', 'number 2'], showlegend=True)) # 라인 이름 2개

Leave a comment