TIL 2021/08/17

한건우·2021년 8월 17일
0

boostcamp aitech

목록 보기
5/13
post-thumbnail

DeepLearning FrameWork

  • 이전에 Tensorflow1, 2를 써봤지만 Pytorch에 비해 불편한 점이 몇가지 존재함
  • Tensorflow1의 경우, Graph 형식의 Session을 사용하면서 디버깅이 굉장히 어려움, 중간 값을 뽑아서 print 찍기가 불편하게 되있고, 불가능한 케이스도 종종 있는데, 이런 것들이 개발 속도를 지연시킴
  • Tensorflow2의 경우, Keras와 TF가 합쳐지면서 framework에 일관성이 없어짐, 예를들어 tensorflow의 tf.data.Dataset API와 keras.preprocessing이 포지션이 겹치는데 tf.data.Dataset이 병목현상을 해결하면서 개발중이었던 preprocessing의 기능들을 공식 가이드에서 비추천하는 기현상을 보임
  • 팀내에서 다툼이 있었던거 같음(TF2.6에서 다시 분리됨)
  • TF가 아직 배포에서는 우위를 점한다고 하지만 ONNX같은 중간 단계 플랫폼이 나오면서 이런 이점들이 굉장히 약해졌다고 개인적으로 생각함

Pytorch Basics

  • 기본적으로 numpy의 대부분의 사용법이 pytorch에 그대로 적용됨
  • Tensor handling
    • view : reshape과 동일하게 tensor의 shape을 변환
    • squeeze : 차원의 개수가 1인 차원을 삭제(압축)
    • unsqueeze : 차원의 개수가 1인 차원을 추가
  • Tensor Operations
    • 행렬곱셈 연산은 함수 dot이 아닌 mm 사용
    • ex )
    a = torch.rand(10)
    b = torch.rand(10)
    a.mm(b)
    
  • Autograd
    • Pytorch의 핵심은 자동미분의 지원 \rightarrow backward 함수

PyTorch 프로젝트 구조 이해하기

  • 초기 단계에서는 대화식 개발과정이 유리하지만 배포 및 공유 단계에서는 notebook 공유의 어려움이 있음
  • DL 코드도 하나의 프로그램이기 때문에 개발 용이성 확보와 유지보수 향상이 필요함
  • 코드도 레고블럭처럼 OOP + 모듈 \rightarrow 프로젝트
  • 템플릿을 사용하여 프로그래밍하면 관리 측면에서 이점이 많음

회고

  • 부스트캠프 측에서 처음부터 쓰라고 했던 회고이지만 이제와서 처음 작성하게됨
  • 아직 3주차 초반이지만 부스트캠프 측에서 기본적으로 넓은 시각을 갖게 해주려는 의도가 보임
  • 기존에 AIFFEL에서 배웠던 방식하고는 다르게 개발 측면도 많이 다뤄줘서 좋았음
  • 그리고 아마 최대 장점은 특강과 마스터클래스가 굉장히 자주 있다는 점이 아닐까 싶음
  • 최근 논문 구현을 많이 하지 않아서 감을 좀 잃은 느낌이 있는데 이번에 되게 재밌어보이는 논문을 찾았음
    https://arxiv.org/pdf/2108.03798.pdf
  • 기회가 되면 빠르게 구현해보고 부스트캠프 slack에 공유해보고 싶음
  • 근데 시간이되려나
profile
아마추어 GAN잽이

0개의 댓글