본문 바로가기

ML | DL

[Keras] Sequential vs Functional

 

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