keras.Sequential([layer, layer, layer])는 Keras의 첫 페이지야. 작거나 중간 규모인 일상 모델의 약 80%도 이 구조로 충분해. 이 트랙에서는 모델을 직접 만들고 MNIST 분류기를 학습한 뒤, 언제 다른 API로 넘어가야 하는지도 배워.
레이어 목록이 곧 모델이야
keras.Sequential은 레이어를 일렬로 연결해. 입력 하나가 첫 레이어를 지나고, 그 출력이 다음 레이어로 넘어가는 흐름을 마지막 출력까지 반복하지. Python 목록에 레이어를 실행 순서대로 넣으면 Keras가 앞뒤를 연결해줘.
이 단순함이 강점이야. 일반적인 MLP, 간단한 CNN, RNN 묶음은 대부분 한 처리가 끝난 뒤 다음 처리가 이어지는 직선 구조야. Sequential은 이런 흔한 모양을 불필요한 준비 없이 가장 솔직하게 표현해.
두 가지 작성 방식
전체 레이어 목록을 keras.Sequential([...])에 한 번에 넘겨도 되고 빈 모델에 model.add(layer)로 하나씩 추가해도 돼(코드 블록 참고). 구조를 처음부터 알고 있다면 목록이 깔끔하고, 반복문에서 조건에 따라 레이어를 쌓는다면 add()가 편해.
직선이 아니면 Sequential이 아니야
Sequential이 맞으려면 입력과 출력이 각각 하나이고 분기, 건너뛰기 연결, 레이어 공유가 없어야 해. 입력이 둘이거나 residual connection이 필요하고 같은 레이어를 두 경로에서 재사용한다면 목록만으로는 흐름을 표현할 수 없어. 이 분명한 한계는 단점인 동시에 Functional API로 넘어갈 시점을 알려주는 기준이야.