본문 바로가기

카테고리 없음

Reproducibility 를 위한 Git repository

나의 연구의 reproducibility 를 위해 개인적으로 중요하게 생각하는 지표는 다른 사람이 내 논문을 보고 똑같은 실험을 돌리는데 얼마만큼의 시간이 걸리냐는 것이다.

(1) 파일 경로 에러 등 코드를 짠 사람은 쉽게 해결할 수 있지만 코드를 처음 돌리는 사람들이 헤맬 수 있는 에러 최소화 하기. 가능하면 한번에 돌릴 수 있게 자동화 해두기. 

(2) 필요한 라이브러리를 한번에 설치할 수 있도록 requirements.txt 나 environment.yml 생성하기

(3) /backup 디렉토리를 생성해서 중요하지 않은 파일 모두 집어넣고 .gitignore 에 추가해서 관리하기

(4) README.txt 파일을 생성해서 step by step 으로 전처리, 메인 코드, 시각화 코드를 돌려볼 수 있게 안내하기

 

프로젝트별로 conda environment 를 구축해서 관련 library 만 다운로드 해둔 상황이 아니라면 이김에 새로운 일단 새로운 conda environment 를 생성하고 다시 관련 library 만 다운로드 해보자. 

conda create -n myenv python=3.8
conda activate myenv

이후에는 내 코드가 성공적으로 돌아갈때까지 pip install libraryname 혹은 conda install library  를 반복해가며 필요한 라이브러리를 모두 설치해주었다. 

라이브러리 설치 예시

그 후 .yml 파일을 생성해주었다. 

conda env export > environment.yml

마지막으로 git 에 push 하기 

git add environment.yml
git commit -m "Add environment file"
git push


README 를 잘 쓰는것도 일종의 기술인데 나는 보통 다른 repository 를 보다가 마음에 드는 서식이 있으면 참고용으로 기록해두는 편이다. 이건 내가 쓰는 서식. 

최근에 작성한 README.txt

https://github.com/youngseo-Kim/MoD_pricing



참고로 MIT 에 Cathy Wu 라는 교수가 교통분야의 reproducibility 를 높이기 위해 열심히 노력하고 있다. 유용한 튜토리얼 자료를 아래 링크에서 찾을 수 있다

https://www.rerite.org/itsc24-rr-tutorial/

 

Home

ITSC 2024 Reproducibility in Transportation Research: A Hands-on Tutorial, September 24, 2024, at Edmonton, Canada.

www.rerite.org