18.2 Tensorflow 2의 구성과 특징

  1. Tensorflow V1에 비해 V2가 갖는 특별한 장점
  • Keras라는 쉽고 간결한 머신러닝 프레임워크를 수용하여 Tensorflow V2의 표준 API로 삼았다.
  • PyTorch가 제안한 Eager Mode는 딥러닝 그래프가 다 그려지지 않아도 부분적인 실행이나 오류 검증이 가능하였다. Tensorflow V2는 이를 수용하였다.
  • Eager Mode는 설계나 구현, 디버깅에 대해 전 과정을 쉽고 직관적으로 만들어 준다.
  • 아래 코드와 같이 session.run()에 의존하지 않고 쉽고 간결하게 처리할 수 있다.
  • 이 외에도 사용의 용이성, 즉시 실행성, 설계 및 구현의 용이성, 데이터 파이프라인 단순화 등이 이전 V1 버전 대비 차별화된 장점으로 설명할 수 있다.

18.3 Tensorflow 2의 딥러닝 모델 작성법

  1. Sequential Model
  • 이 모델은 입력 1가지, 출력 1가지를 전제하므로 모델의 입력과 출력이 여러 개인 경우에는 이 모델링 방법은 적절하지 않다.
  • 입력에서 출력에 이르기까지 레이어를 sequential하게 차곡차곡 쌓아나가기만 하면 된다.
  • 초보자가 접근하기 용이한 모델이다.
  1. Functional Model
  • Functional API는 Sequential Model에 비해 모델링 면에서 자유롭다.
  • 입력과 출력을 규정함으로서 모델 전체를 규정하듯 함수형으로 모델을 구성한다.
  • Functional API는 다중 입력 및 출력을 가지는 모델을 구성할 수 있다.
  1. Subclassing Model
  • 딥러닝 모델 작성법 3가지 중에서 모델링 면에서의 자유도가 가장 높다.
  • Subclassing Model의 경우, 아래와 같이 각 레이어에 대한 이해가 중요하며 초심자 입장에서 의도치 않은 버그를 유발할 수도 있다.
  • 대체로 복잡한 모델링을 해야 할 때 쓰이게 되는 모델이다.

♣ 18.4~18.9는 실습 위주이므로 다루지 않습니다.

18.10 tf.GradientTape의 활용

  1. 순전파로 진행된 모든 연산의 중간 레이어 값을 Tape에 기록하고, 이를 이용해 Gradient를 계산하여 tape를 폐기하는 기능까지 수행한다.
  2. 강화학습이나 GAN(Generative Advasarial Network) 등의 학습에 적극적으로 활용된다.
profile
날개를 달고 날아오르자!

0개의 댓글