edwith의 [파이토치로 시작하는 딥러닝 기초] Lab-10-3 visdom 강의를 정리했습니다. 잘못된 부분이 있으면 말씀해 주세요!
이번 강의에서는 Visdom 사용 방법을 익히고 MNIST-CNN의 loss graph를 그리는 것까지 적용할 예정입니다.
Visdom
Visdom은 라이브 데이터를 풍부하게 시각화 해주는 시각화 도구입니다. 연구원과 개발자가 원격 서버에서 과학 실험을 지속적으로 할 수 있도록 도와주며, 브라우저에서 실행되며 다른 사람과 쉽게 공유할 수 있습니다.
Visdom 설치
pip install visdom # Visdom 설치
python -m visdom.server # 서버 실행
설치 후, http://localhost:8097 에 접속하면 visdom 페이지로 이동하실 수 있습니다.
Visdom 사용법
import visdom
vis = visdom.Visdom() # 서버가 꺼져있으며 오류나기 때문에 반드시 실행되어야 함
Visdom 텍스트 및 이미지 불러오기
# Text
vis.text("Hello, world!",env="main")
# Image
a=torch.randn(3,200,200)
vis.image(a)
# Images
vis.images(torch.Tensor(3,3,28,28))
MNIST 이미지
### MNIST 이미지 불러오기 ###
import torchvision.datasets as dsets
import torchvision
MNIST = dsets.MNIST(
root="./MNIST_data",
train=True,
transform=torchvision.transforms.ToTensor(),
download=True
)
data = MNIST.__getitem__(0)
print(data[0].shape)
vis.images(data[0], env="main")
### MNIST 이미지 여러 개 띄우기 ###
data_loader = torch.utils.data.DataLoader(
dataset=MNIST,
batch_size=32,
shuffle=False
)
for num, value in enumerate(data_loader):
value = value[0]
print(value.shape)
vis.images(value)
break
Lineplot
Lineplot 그리기
학습을 진행하면서 loss value 값을 확인할 수 있다.
### Linde Plot ###
Y_data = torch.randn(5)
plt = vis.line (Y=Y_data)
# X값을 선언하지 않으면 0~1 사이의 값만 불러오게 됨
X_data = torch.Tensor([1,2,3,4,5]) # x축 명시
plt = vis.line(Y=Y_data, X=X_data)
### Line Updtae ###
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)
num = torch.cat((num,num),dim=1)
plt = vis.line(Y=torch.randn(10,2), X = num)
Line에 정보 추가하기
### Line Info ###
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))
Visdom에 대한 자세한 설명은 Facebook AI 사이트에서 확인할 수 있습니다.
'20. 인공지능과 딥러닝' 카테고리의 다른 글
[PyTorch로 시작하는 딥러닝] Lab 11-1 RNN Basic (0) | 2020.03.29 |
---|---|
[PyTorch로 시작하는 딥러닝 기초] Lab 11-0 RNN intro (0) | 2020.03.29 |
[PyTorch로 시작하는 딥러닝 기초] Lab-10-2 Mnist CNN (0) | 2020.03.07 |
[PyTorch로 시작하는 딥러닝 기초] Lab-10-1 Convolution (2) | 2020.03.07 |
[PyTorch로 시작하는 딥러닝 기초] 09-4 Batch-Normalization (0) | 2020.02.09 |
댓글