2022년 1월 24일(월)부터 28일(금)까지 네이버 부스트캠프(boostcamp) AI Tech 강의를 들으면서 개인적으로 중요하다고 생각되거나 짚고 넘어가야 할 핵심 내용들만 간단하게 메모한 내용입니다. 틀리거나 설명이 부족한 내용이 있을 수 있으며, 이는 학습을 진행하면서 꾸준히 내용을 수정하거나 추가해 나갈 예정입니다.
Deep Learning의 프레임워크
프레임워크와 라이브러리의 차이
요약하자면, 제어의 흐름에 대한 틀이 짜여져 있으면 프레임워크 , coder 자신이 작성한 코드가 직접 제어의 흐름을 담당하면 라이브러리 라고 할 수 있다.
https://youtu.be/t9ccIykXTCM
VIDEO
Keras
wrapper
TensorFlow와 Pytorch를 사용자가 보다 편하게 사용할 수 있게 감싼 high-level API다.
최근에 Tensorflow와 통합되었다고 봐도 무방하다.
TensorFlow v.s. PyTorch
Tensorflow와 Pytorch의 가장 큰 차이는 Computational graph로 정적 그래프를 사용하느냐(Tensorflow) 동적 그래프를 사용하느냐(Pytorch) 다.
TensorFlow는 먼저 그래프를 정의하는 코드를 작성하고, 실행 시점에 데이터를 넣어주는 Define and Run 방식을 사용한다.
TensorFlow는 다음과 같은 장점을 지닌다.
Production과 Scalability
Cloud 연결과 Multi GPU
PyTorch는 실행을 하면서 그래프를 생성하는 Define by Run 방식을 사용하여 즉시 확인이 가능하다. (pythonic code)
PyTorch의 장점은 다음과 같다.
쉬운 Debugging
논문 아이디어 구현의 용이함
Computational graph는 연산 과정을 그래프로 표현한 것으로, 학습이 진행되며 그래프가 그려지는 Dynamic computation의 경우 더 편리하고 debuging에 강점이 있다. 이는 최근 Pytorch가 더 인기 있는 이유이다.
아래는 PyTorch가 최근(2022년 2월 기준) 딥러닝의 프레임워크로서 더 인기를 얻고 있다는 것을 보여준다.
https://paperswithcode.com/trends
Papers with Code - Papers With Code : Trends
Papers With Code highlights trending Machine Learning research and the code to implement it.
paperswithcode.com