2020년 10월 7일 수요일

[Machine learning] model.zero_grad() 와 optimizer.zero_grad()

 pytorch를 사용할 때 매 mini-batch 학습마다 model.zero_grad()를 해야한다.

pytorch는 한 mini-batch로 모델을 업데이트 한 후 모델 업데이트에 사용한 gradient를 버리는 것이 아니라 다음 mini-batch 계산에 누적해서 사용한다. 

학습 시 이전 mini-batch를 이용하여 계산한 gradient를 다음 mini-batch에서 계산한 gradient에 누적하면 안되기 때문에 다음 mini-batch를 이용하여 학습을 수행하기 전 이전 mini-batch를 이용하여 계산된 gradient를 초기화시켜주는 단계를 거쳐야한다. 따라서 매 mini-batch 학습마다 model.zero_grad()를 불러와야한다. 

하지만 pytorch 예제들을 보면 어떤 경우에는 model.zero_grad()를 사용하고 어떤 경우에는 optimizer.zero_grad()를 사용한다. 

검색해보니 비슷한 질문에

"model.zero_grad() and optimizer.zero_grad() are the same IF all your model parameters are in that optimizer. I found it is safer to call model.zero_grad() to make sure all grads are zero, e.g. if you have two or more optimizers for one model.”


라는 댓글이 있었다.

model.zero_grad()와 optimizer.zero_grad() 는 같으므로 쓰는 사람에 따라 선호하는 방식을 사용하는 듯 하다. 


출처: https://discuss.pytorch.org/t/model-zero-grad-or-optimizer-zero-grad/28426/5

2020년 10월 6일 화요일

[Machine learning] GAN 종류

 GAN을 이용하여 연구를 수행하기 위해 주목할만한 GAN 종류에 대해 정리 함.

    4. CycleGAN: 
     특정 스타일로 이미지를 변환시킴 


    5. 기타

2020년 9월 9일 수요일

[Github]Zenodo를 통해 github 자료 배포 및 doi 부여하기

 * 최근 많은 저널들이 연구에 사용한 데이터를 공개하라고 직접적으로 요구하고 있으므로 데이터를 공개할만한 적절한 저장소를 찾아야 하는 경우가 있다. Dryad (https://datadryad.org/stash), Figshare (https://figshare.com/account/home) 등이 대표적인 저장소이다. 많은 경우 GitHub에 코드 및 데이터를 공개하지만 몇몇 저널은 GitHub에 업로드된 자료에 Zenodo (https://zenodo.org/) 를 통해 doi를 부여하여 공개하는 것을 추천하기도 한다.


* Zenodo는 유럽 OpenAIRE프로그램에 따라 개발된 데이터 저장소로 연구 데이터를 공유하는데 많이 활용되고 있다.


*Zenodo를 통해 연구 데이터를 공유하는 방법은 아래와 같다.


1. https://zenodo.org/ 접속, Log in 탭 선택


2. Log in with GitHub 선택하고 가지고 있는 GitHub 계정으로 로그인.


3. 드랍 다운 메뉴에서 GitHub 선택


4. 아래 Repositories에서 off로 된 부분을 on으로 변경 후 repository를 클릭하면 GitHub의 해당 repository 링크가 나옴


5. 링크를 통해 GitHub의 해당 repository로 이동하고 release 정보를 입력할 수 있게 됨

Tag version 에는 프로그램 및 데이터 버전을 입력, 

Release title과 설명을 입력한 후 Publish release를 클릭하면 release 됨.


6. 다시 Zenodo로 가서 GitHub탭으로 들어가보면 Enabled Repositories에 DOI 가 부여된 것을 확인할 수 있으며 DOI를 통해 들어가보면 Zenodo를 통해 공개된 데이터를 확인할 수 있음.