머신러닝

본문 바로가기

사이트 내 전체검색


2. visdom 사용법(2)

페이지 정보

작성자 관리자 댓글 0건 조회 1,968회 작성일 20-03-07 21:54

본문

visdom은 facebook에서 개발한 데이터를 시각화 가능하게 해주는 도구이다. pytorch와 numpy를 지원한다.



실습.


import numpy as np
import torch
from visdom import Visdom 

viz = Visdom()

plot = viz.line(Y=torch.randn(5),X=np.array([0,1,2,3,4]))


위의 코드를 실행시켜보면 다음과 같은 그래프가 그려진다.



1.PNG


Y축의 torch.randn(5)는 tensor( [ 첫번째랜덤값,두번째,세번째,~~~,다섯번째 ] ) 와 같은 형태이며
0,1,2,3,4,5 는 X 축이 된다.



loss와 accuracy는 for문을 돌며 갱신을 계속하여 하기 때문에 다음과 같이 for문을 이용하여 그래프를 지속적으로 그려주는 코드를 참조하면 될 것 같다.



실습.


import numpy as np
import torch 

import random
from visdom import Visdom
viz = Visdom()

plot = viz.line(Y=torch.randn(5),X=np.array([0,1,2,3,4]))

for i in range(10):
    viz.line(Y=[random.random()],X=np.array([i]),win=plot,update='append')
    #plot 창에 현재의 X값과 Y값을 1000번 append 하겠다는 뜻  



위의 코드를 실행시키면 다음과 같은 그래프가 그려진다.



2.PNG



그렇다면 loss와 accuracy를 시각화 하기 위해서는 epoch에 관한 loss,accuracy를 그리면 된다.
두 개의 그래프를 그려보자
밑의 코드는 저번 포스팅에서 했던 "[Pytorch] MNIST datasets 대신 custom handwritten datasets 학습" 의 코드에 loss값과 accuracy 값을 시각화 하려는 코드이다
수정해야 할 부분은 test 메소드의 파라미터에 epoch를 추가하고, main 부분에서 test 함수를 호출할 때 epoch 값을 넣어준다. 그리고 test 함수 가장 마지막 부분에 test_loss 와 100.*correct/len(test_loader.dataset) 를 이용하여 loss 값을 Y축에 넣으면 끝이 난다




댓글목록

등록된 댓글이 없습니다.



개인정보취급방침 서비스이용약관
Copyright © www.leelab.co.kr All rights reserved.
상단으로
TEL. 063-469-4551 FAX. 063-469-4560
전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과
PC 버전으로 보기