본문 바로가기
반응형

Backend MLOps/MyTemplate6

[DLTemplate] #4 trainer 정리 -3 kfold kfold 가 진행될 수 있도록 모델 트레이너에 녹여보자. 우선은 아래의 링크를 참고했음을 알린다. https://www.machinecurve.com/index.php/2021/02/03/how-to-use-k-fold-cross-validation-with-pytorch/ K-fold Cross Validation with PyTorch – MachineCurve Explanations and code examples showing you how to use K-fold Cross Validation for Machine Learning model evaluation/testing with PyTorch. www.machinecurve.com 하나의 sweep_config 가 결정되면 그 아래로 k번.. 2021. 9. 27.
[DLTemplate] #4 trainer 정리 -2 model 이번엔 모델을 정리하고 불러올 수 있게 모듈화 한 다음 적절한 unittest를 줘서 관리해보자. 완전히 독립된 객체로 다룰 수 있게 코딩된 모델을 복붙해서 py파일로 만든다. 이렇게 하고 불러오기만 하면 된다. 동작을 확인하자. 무리없이 학습이 진행된다. 이제는 모델이 적절하게 평가될 수 있는 테스트를 만들어줘야 한다. 우선은 입력크기가 정해지면 적절한 출력 크기가 나오는지 알 수 있어야 한다. sweep_config에서 config_gennerator 가 공통 config를 가지고 있으니 활용하도록 하자. data shape을 넣어줬다. 그리고 dummy_input을 만들고 그것을 넣어 문제가 생기지 않는지 확인한다. 이상이 없다면 모델의 레이어 중간중간마다 원하는 값이 나오는지 출려력해 볼수도 있어.. 2021. 9. 27.
[DLTemplate] #4 trainer 정리 trainer 를 잘 정리해보자. 우선 my_dataset.py 파일을 만들어서 데이터셋부터 갈고 닦아보자. 간단한 mnist 불러오기 구문이지만 나중에 다시 써먹을 수 있는 형태로 뼈대를 잡아두고 repr 등도 확실하게 적어둔다. 잘 나오는 것을 확인할 수 있다. 이제 trainer의 data부분을 치환해 주고 적당한 unittest를 줘서 적용을 해 본다. 테스트를 통과했다. 다음에 할 일은 이 unittest가 내가 만은 sweep config 와 유기적으로 연동되게 하는 것이다. 훈련중 바뀔 가능성이 현저히 적은 파라미터들을 공통 파라미터로 묶어서 꺼냈다. 이렇게 하면 trainer 에서도 쉽게 불러올 수 있게 되면서 각각의 method 별로 다른 실험을 진행할 수도 있다. 불러오면서 train과.. 2021. 9. 23.
[DLTemplate] #3 github action과 codeclimate 일을 시작 하기 전에 먼저 깃헙을 확인한다. pull requests 를 확인한 다음 closed 를 보면 내가 이전의 작업을 끝내면서 어떤 메모를 남겼는지 확인 할 수 있다. 이런 작업들이 남아있다. 계속해서 branch를 확인하고 추적하는 작업이 상당히 귀찮다. 그럴때는 zsh를 이용해주도록 하는데 VScode는 어떤 쉘을 이용해서 작업을 시작할지 프로필에서 정해줄 수 있다. 터미널을 열고 왼쪽 위에 있는 저 부분을 설정해 주면 간단하게 기본 쉘을 zsh로 바꿔줄 수 있다. zsh와 oh-my-zsh 를 이용해서 현재 브랜치가 어디인지 나타내주는 테마를 적용했다. 테마 적용에 어려움이 있는 경우 VScode zsh 깨짐 등을 검색하면 해결할 수 있다. VScode 가 설치되어있는 로컬에서 해결해야하는.. 2021. 9. 23.
[DLTemplate] #2 모듈의 패키지화 #1 에서 main이 아닌 브랜치에서 main이 아닌 브랜치로 push 하였으므로 merge를 요청하는 pull request가 와 있다. 간단하게 메모를 남기고 TODO까지 적어준다. 그리고 Merge해주면 merge가 정상적으로 되었고 브랜치를 삭제할 것이냐는 질문이 나온다. 이제 설계한 실험단위가 종료되었으므로 브랜치를 삭제한다. 브랜치가 정상적으로 삭제 되었다. 항상 코딩을 진행할 때는 1. 실험 단위 설계 2. 브랜치 생성 3. 실험 단위 진행 4. 단위 종료 5. push 6. pull request 작성 7. merge 후 브랜치 삭제 위의 과정을 거쳐야 하는 것을 잊지 말아야한다. 나도 자꾸 까먹는데 일단 하루에 하나씩은 꼭 브랜치를 만들어서 깃을 십분 활용하도록 하자. 브랜치를 즉각 확인.. 2021. 9. 21.
[DLTemplate] #1 딥러닝 템플릿 만들기 시작 간단하게 리드미 정도를 포함한 깃헙 레포를 하나 만든다. 이 레포를 clone 하여 로컬에서 작업을 시작한다. 간단하게 MNIST 손글씨를 훈련하는 스크립트를 만들어서 이것으로 부터 각각 템플릿을 나눠서 구성해 보자. 먼저 브랜치를 하나 생성하고 브랜치 위에서 작업하도록 한다. 코딩을 시작하기전에 기본적으로 무엇을 코딩할지 정하고 그 행동의 단위가 끝나면 머지하는 습관이 반드시 필요하다. 브랜치를 만들면서 동시에 채크아웃 까지 진행했다. 이제 이 브랜치 위에서 간단한 MNIST 학습 모델을 구성한다. CV 계열에서 볼 때 학습은 크게 세가지로 분류할 수 있을 것이다. 첫번째는 분류문제에 대한 학습이고 두번째는 회귀문제에 대한 학습이고 세번째는 생성문제에 대한 학습이다. 여기서는 우선 분류문제에 특화된 탬.. 2021. 9. 20.
반응형