AI/Pytorch

딥러닝 프레임 워크 비교 - Keras, Tensorflow, Pytorch

jihuSunbae 2024. 7. 26. 11:27

 

 

 
 

목차

     

    학습 목표

    - 3가지 딥러닝 프레임워크의 장단점을 파악 

    - 내가 많이 쓰려는 Pytorch의 특징을 파악하기

    딥러닝 프레임 워크 비교: Overview

     Keras

    • Wrapper, 즉 껍데기이다.
    • 하단에 TF나 pytorch를 사용할 수 있게 하는 High level API이다. 
    • 특징: User friendly, 배우기 쉬움 

    Tensorflow(Google) vs Pytorch(FaceBook)

    • 둘다 비슷하지만, Computational graph 를 어떻게 정의하느냐가 큰 차이이다. 
    Q. Computational Graph란 뭔가요?
    A. 컴퓨터가 연산을 수행할 때 사용하는 그래프이다. 
    아래와 같이 함수 g를 수행할 때, 컴퓨터는 각 연산 과정을 그래프로 표현하여 계산한다.

     

     

    TF: Define and Run

    • 그래프를 먼저 정의하고, 실행 시점에 데이터를 feed(삽입)
    • 코드 구현 시, (1) 그래프 구조 정의 후에 (2) 실행(어떤 데이터를 feed 해줄 지 지정) 의 2가지 단계를 거침
    • 장단점
      • 장점: 실제 production 레벨에서 많이 사용한다, scalability 
      • 단점: 실행 단계를 거쳐야 디버깅이 가능하기 때문에, 디버깅하기 어려움 

    Pytorch: Define and Run(Dynanmic Computational Graph, DCG)

    • 코드를 실행하면서, 그래프를 생성한다. 
    • 장점 
      • Define by Run: 그래프를 정의하면서 연산이 함께 되기 때문에, 디버깅하기 편함

    코드로 비교해보자

    위의 그림을 보면, 왼쪽의 tf 코드는 (1) 그래프를 빌드하고 (2) 각 iteration 마다 그래프에 어떤 데이터를 삽입해야될 지 알려주며 학습이 진행된다. 반면 오른쪽 pytorch 코드의 경우 DCG를 기반으로 그래프를 정의하면서 그래프 연산까지 함께 된다! 그래서 디버깅하기 편함!

     

    Get into Pytorch!

    Pytorch의 핵심은 Numpy + AutoGrad + Function 이다!

    • Numpy: 넘파이 구조와 비슷한 Tensor 객체를 제공함
    • AutoGrad(자동 미분)을 지원 
    • Function: DL을 지원하는 다양한 함수와 모델을 제공함!

     

     

     


    Reference

     

    네이버 부스트 캠프 AI 기초다지기 프리코스