본문 바로가기
C.W.K.
Stream
Lesson 01 of 07 · published

Sequential이 뭐야?

~8 min · sequential

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

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로 넘어갈 시점을 알려주는 기준이야.

Code

Sequential 모델을 만드는 두 가지 방법·python
import keras
from keras import layers

# Method 1: Pass a list of layers
model = keras.Sequential([
    keras.Input(shape=(784,)),
    layers.Dense(128, activation="relu"),
    layers.Dense(64, activation="relu"),
    layers.Dense(10, activation="softmax"),
])

# Method 2: Incremental add()
model = keras.Sequential()
model.add(keras.Input(shape=(784,)))
model.add(layers.Dense(128, activation="relu"))
model.add(layers.Dense(10, activation="softmax"))

External links

Exercise

회귀용 3층 Sequential MLP를 만들고 model.summary()를 출력해. 각 레이어의 입력과 출력 모양을 확인해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.