keras를 처음 배울 때, tensorflow에 비해 뭔가 더 간결하다? 쉽다?는 느낌을 받았습니다.
그 이유는 바로 뭣도 모르고 시퀀셜 모델을 생성하는 방법만 배웠기 때문이었습니다.
나중에 functional 모델을 배우고 둘의 차이점이 궁금해서 알아봤습니다.
Sequential model
Sequential API는 layer-by-layer로 레이어를 쌓으며 모델을 생성합니다.
Sequential 모델의 경우 사용하기 매우 쉽고 대부분의 문제를 해결할 수 있습니다.
하지만 한계점이 있습니다.
1. layer를 공유하지 못합니다.
2. 다중 입출력이 불가능합니다.
Functional model
그에 비해, functional API는 layer를 자유롭게 다른 layer와 연결하며 구조를 정의할 수 있습니다.
즉 residual network와 같이 layer가 연결된 구조도 구현할 수 있습니다.
또한 다중 입출력이 가능합니다.
정리를 해보자면, Sequential API의 경우 모델을 생성하는 방법이 매우 간단하고 대부분의 모델을 생성할 때에는 사용 가능하다는 장점이 있으나, 다중 입출력이 안 되며 layer간에 앞뒤 연결만이 가능합니다.
functional API의 경우, Sequential API에 비해서는 조금 복잡해보이기는 하나 다중 입출력이 가능하고, layer 간에 다양한 연결이 자유자재로 가능하다는 장점이 있습니다.
알고 난 뒤로는 Sequential은 거의 안쓰고,, functional만 쓰게 되네요.
혹시 다른 특징이나 장단점이 더 있다면 댓글로 공유해주세요. ^^
코드 출처 : https://medium.com/@hanify/sequential-api-vs-functional-api-model-in-keras-266823d7cd5e
'ML | DL' 카테고리의 다른 글
[Review] Automated detection of third molars and mandibular nerve by deep learning (0) | 2020.12.18 |
---|---|
[Review] LS-Net : Fast Single-Shot Line-Segment Detector (0) | 2020.07.29 |
[ML] Decision Tree : 의사 결정 나무 (1) (0) | 2020.07.21 |
[Keras] fit vs fit_generator (0) | 2020.07.15 |
[DL] Activation Function (활성화 함수) (0) | 2020.07.14 |