본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[딥러닝을이용한 자연어 처리 입문] 0808 케라스 서브클래싱 API(Keras Subclassing API)

by manga0713 2021. 5. 19.

케라스의 구현 방식 : Sequential API, Functional API, Subclassing API

 

 

1. 서브클래싱 API로 구현한 선형 회귀

 

 

2. 언제 서브클래싱 API를 써야 할까?

 

- Subclassing API로는 Functional API가 구현할 수 없는 모델들조차 구현할 수 있는 경우가 있음

- 그러나 대부분의 딥 러닝 모델은 Functional API 수준에서도 전부 구현이 가능 하므로 서브클래싱 API는 밑바닥부터 새로운 수준의 아키텍처를 구현해야 하는 실험적 연구를 하는 연구자들에게 적합 함

 

3. 세 가지 구현 방식 비교

 

1) Sequential API

  • 장점 : 단순하게 층을 쌓는 방식으로 쉽고 사용하기가 간단
  • 단점 : 다수의 입력(multi-input), 다수의 출력(multi-output)을 가진 모델 또는 층 간의 연결(concatenate)이나 덧셈(Add)과 같은 연산을 하는 모델을 구현하기에는 적합하지 않음

2) Functional API

  • 장점 : Sequential API로는 구현하기 어려운 복잡한 모델들을 구현할 수 있음
  • 단점 : 입력의 크기(shape)를 명시한 입력층(Input layer)을 모델의 앞단에 정의해주어야 함

3) Subclassing API

  • 장점 : Functional API로도 구현할 수 없는 모델들조차 구현이 가능
  • 단점 : 객체 지향 프로그래밍(Object-oriented programming)에 익숙해야 하므로 코드 사용이 가장 까다로움

 

nlp_0808_subclassing api 케라스 서브클래싱 api.ipynb
0.04MB

 

- 출처 : [딥러닝을이용한 자연어 처리 입문] 0808 케라스 서브클래싱 API(Keras Subclassing API)