파이토치를 이용하다가 실시간 visualization을 하기 위해여 visdom을 사용하였다.
Tensorboad를 사용하다가 visdom을 써보니 편한듯 하지만 좀 어설퍼보인다는 생각이 자꾸 든다.
최근호님의 튜토리얼을 현재 버전에 맞게 수정하고 그림을 추가하였다.
Visdom Tutorial
튜토리얼, 현재 버전에 맞게 변형 및 그림 추가
- 본 블로그 실습 코드 : https://github.com/keep-steady/etc_code/blob/master/visdom_tutorial.ipynb
- 공식 사이트 : https://github.com/facebookresearch/visdom
- 튜토리얼 : https://github.com/GunhoChoi/PyTorch-FastCampus/blob/master/02_Regression%26NN/Visdom_Tutorial.ipynb
1. 설치
1
|
pip install visdom
|
2. 서버 사용시 터미널창에
> visdom 을 입력
local에서
> http://서버주소:defaul_port/ 로 접근 가능
> http://192.168.10.228:8097/
3. visdom 선언
1
2
3
4
5
6
|
4.글 남기기
1
|
textwindow = viz.text("Hello Pytorch")
|
5. 그림 한개 그리기
1
2
3
|
opts=dict(title = "random",
caption = "random noise"))
|
6. 그림 여러개
1
2
3
|
opts=dict(title = "random",
caption = "random noise"))
|
7. Scatter 그림 그리기
1
2
3
4
5
6
7
8
9
10
11
12
|
Y=(Y+1.5).astype(int),
opts=dict(legend=['Apples', 'Pears'],
xtickmin=0,
xtickmax=2,
xtickstep=0.5,
ytickmin=0,
ytickmax=2,
ytickstep=0.5,
markersymbol='cross-thin-open')
)
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5; text-decoration:none">Colored by Color Scripter
|
8. Update image
2018년 초 vis.updateTrace() 함수가 없어짐, 대신 update = 'append' or 'replace'로 사용.
update - 'append' : 기존 그림에 추가해서 그리기
update - 'replace' : 기존 그림 지우고 대체하기
1
2
|
win=scatter_window, name='bananas', update='append')
|
9. 그림 업데이트
update - 'append' : 기존 그림에 추가해서 그리기
update - 'replace' : 기존 그림 지우고 대체하기
1
2
|
win=scatter_window, name='bananas', update='replace')
|
10. 3D Scatter Plot
x 축에 2차원, y축에 1차원을 추가하여 3차원 만듬
1
2
|
opts=dict(legend=['Men', 'Women'],markersize=5))
|
11. Bar Plot
1
|
12. Stacked Bar Plot
누적 그래프, stacked = True
1
2
3
4
5
6
|
opts=dict(stacked=True,
legend=['Facebook', 'Google', 'Twitter'],
rownames=['2012', '2013', '2014', '2015', '2016']
)
)
|
13. Unstacked Bar Plot
비교 그래프, stacked = False
1
2
3
4
5
|
opts=dict(stacked=False,
legend=['The Netherlands', 'France', 'United States']
)
)
|
14. Contour Map & Surface
contour, 2차원
1
2
3
4
5
|
y = x.transpose()
viz.contour(X=X, opts=dict(colormap='Viridis'))
|
15. surface, 3차원
1
|
|
16. Line Plot
1
|
17. Update Line Plot
line updates, update='append' 를 이용
1
2
3
4
5
6
7
8
9
10
11
|
win = viz.line(
Y=np.column_stack((np.linspace(5, 10, 10), np.linspace(5, 10, 10) + 5)),
)
Y=np.column_stack((np.linspace(5, 10, 10), np.linspace(5, 10, 10) + 5)),
win=win,
update='append'
)
|
18. Pie Chart
pie chart, 원형 차트, 엑셀에서 자주 이용
1
2
|
X = np.asarray([19, 26, 55])
|
19. With PyTorch Tensors
PyTorch tensor, 좌표를 전다랗여 torch_tensor로 그래프 그리기
1
|
|
Conclusion
visdom은 페북에서 만든 pytorch용 visualization tool 이다.
근데 사용하다보면....참 좀 허접해보이고 엉성하다는 개인적인 느낌이 든다.
역시, TensorboardX를 써야겠다. 다음 포스터는 TensorboardX 에 대한 글이다.
'AI > Pytorch' 카테고리의 다른 글
Pytorch visualization #2. TensorboardX 사용법 (3) | 2019.05.09 |
---|---|
Pytorch 사용법 정리 (0) | 2019.05.08 |