PyTorch 프로젝트 구조 이해

  • PyTorch에 모듈이 어떻게 구성되는지
  • 그 모듈들 안에 어떻게 프로젝트 코드들이 들어가야하는지
  • 프로젝트 템플릿에 대한 이해

PyTorch Project Template Overview

ML 코드는 언제나 Jupyter에서?

  • Jupyter은 사용하기 쉬운 환경이긴 하지만 모든 개발에서 사용될 수는 없음
  • 개발 초기단계에서는 대화식(Jupyter) 개발과정이 유리
    • 학습과정과 디버깅 등 지속적인 확인
  • 베포 및 공유단계에서는 notebook 공유의 어려움
    • 쉬운 재현의 어려움, 실행순서 꼬임
  • DL코드도 하나의 프로그램
    • 개발용이성 확보와 유지보수 향상
  • 파라미터를 계속 바꿔가면서 더 좋은 모델을 만들때는, 모델과 파라미터의 버전을 어느순간 일치시키기 힘들어진다. (파라미터를 바꿀 때 마다 메모해 놓는것도 귀찮고, 사람이 개입하기 때문에 실수가 발생할 우려도 있다. 무엇보다, 과거 모델과 현재 모델을 비교하는 A/B 테스트를 하려면, 과거 학습시에 썼던 파라미터가 보존되어 있어야한다. 실험할 때마다 Jupyter notebook 을 카피해 놓을 자신이 있는가?)

PyTorch Project Template Overview

OOP(객체지향프로그래밍) + 모듈 -> 프로젝트 // 코드도 레고처럼

  • 다양한 프로젝트 템플릿이 존재
  • 사용자 필요에 따라 수정하여 사용
  • 실행, 데이터, 모델, 설정, 로깅, 지표, 유틸리티 등 다양한 모듈들을 분리하여 프로젝트 템플릿화
  • 프로젝트마다 공통된 워크플로우는 각자 사정에 맞게 설계를 해 두면 편하기도 할 뿐더러, 모델의 관리도 쉬워지고, 프로젝트를 성공적으로 마칠수도 있을 것이다. 더 많은 머신러닝, 딥러닝 프로젝트를 이 템플릿에 담아보면서, 조금씩 수정해 나가면 개발자와의 협업도 수월해 질 것으로 생각한다.

Pytorch Template 추천 repository

'Pytorch' 카테고리의 다른 글

PyTorch Basic  (0) 2022.07.20

*파이토치 기본 문법 : numpy와 거의 흡사

 

*pytorch operations

=> numpy + AutoGrad

numpy operation이 거의 파이토치에 들어감

벡터를 다루는 연산에는 numpy가 필수

 

*Tensor 

- 다차원 Arrays를 표현하는 pytorch 클래스

- 사실상 numpy의 ndarray와 동일

- Tensor를 생성하는 함수도 거의 동일  

 

*Tensor 생성은 list나 ndarray를 사용 가능

 

*기본적으로 tensor가 가질수 있는 data타입은 numpy와 동일

 

*대부분의 numpy 사용법이 torch에도 그대로 적용됨

 

*pytorch의 tensor는 GPU에 올려서 사용가능

 

*view, squeeze, unsqueeze등으로 tensor 조정 가능

- view : reshape과 동일하게 tensor의 shape을 변환 (view는 copy의 개념이 아니라 메모리 주소를 공유함. reshape은 copy의 개념)

- squeeze : 차원의 개수가 1인 차원을 삭제(압축)

- unsqueeze : 차원의 개수가 1인 차원을 추가

 

*행렬곱셈 연산은 dot이 아닌 mm 사용

- 백터, 스칼라일때는 dot 사용 가능

- 행렬일때는 mm 사용

 

*mm과 matmul은 broadcasting 지원 차이

 

*pytorch의 핵심은 자동 미분의 지원 -> backward 함수 사용

'Pytorch' 카테고리의 다른 글

Pytorch Project Template  (0) 2022.08.17

+ Recent posts