edwith의 [파이토치로 시작하는 딥러닝 기초] Lab-10-3 visdom 강의를 정리했습니다. 잘못된 부분이 있으면 말씀해 주세요!
[LECTURE] Lab-10-3 visdom : edwith
학습목표 Visdom 사용 방법을 알아본다. 핵심키워드 Visdom CNN - tkddyd
www.edwith.org
이번 강의에서는 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 사이트에서 확인할 수 있습니다.
Visdom
Visdom is a visualization tool that generates rich visualizations of live data to help researchers and developers stay on top of their scientific experiments that are run on remote servers.
ai.facebook.com
'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 |
댓글