model = Sequential()
model.add(layers.Dense(64, activation="relu"))
model.add(layers.Dense(32, activation="relu"))
model.add(layers.Dense(2, activation="softmax"))
model = Sequential()
model.add(layers.Dense(64, activation="relu", input_shape=(X_train.shape[1],)))
model.add(layers.Dense(32, activation="relu"))
model.add(layers.Dense(2, activation="softmax"))
model.summary() # 입력 shape가 명확히 표시됨
두 코드는 겉보기엔 거의 같지만, “입력층(input layer)” 정의 방식에서 중요한 차이가 있습니다.
아래에서 단계별로 쉽게 설명드릴게요.
✅ 1️⃣ 공통점
두 코드 모두 3개의 Dense 층(완전연결층)을 쌓은 Sequential 신경망입니다.
출력층(Dense(2, activation="softmax"))이 있으니 2클래스 분류 문제임도 같아요.
⚙️ 2️⃣ 차이점 핵심 — input_shape 명시 여부
| 구분 | 코드 1 | 코드 2 |
| 입력 크기 지정 | ❌ 없음 | ✅ 있음 (input_shape=(X_train.shape[1],)) |
| 첫 번째 층 동작 | Keras가 자동 추론 | Keras가 명시적으로 고정 |
| 모델 요약(model.summary()) | 입력 shape가 (None, 64)로 바로 안 뜸 | 입력 shape가 (None, feature수)로 명확히 뜸 |
| 실전 사용 시 | fit할 때 자동 추정 (데이터 한 번 통과 필요) | 미리 구조 확정 가능 (더 안정적) |
💡 예시 비교
❌ input_shape 없는 경우

model = Sequential()
model.add(layers.Dense(64, activation="relu"))
model.add(layers.Dense(32, activation="relu"))
model.add(layers.Dense(2, activation="softmax"))
- fit() 시 첫 데이터를 보고 입력 크기를 자동 추론합니다.
- 그 전까지는 모델이 “입력 차원 몇인지 모르는 상태”예요.
✅ input_shape 있는 경우

model = Sequential()
model.add(layers.Dense(64, activation="relu", input_shape=(X_train.shape[1],)))
model.add(layers.Dense(32, activation="relu"))
model.add(layers.Dense(2, activation="softmax"))
model.summary() # 입력 shape가 명확히 표시됨
- 모델을 만드는 순간부터 입력 형태가 고정되므로
model.summary()로 구조 확인이 가능하고,
다른 사람에게 공유하거나 모델을 저장할 때도 안전합니다.
📘 3️⃣ 정리
| 항목 | input_shape 생략 | input_shape 명시 |
| 입력 크기 설정 | 자동 감지 | 수동 지정 |
| 모델 요약 표시 | 입력 없음(None) | 입력 명시됨 |
| 초기에 가중치 생성 | fit 시점 | 모델 생성 시점 |
| 추천 여부 | 간단한 실험용 | 실무 / 교육용 모두 권장 ✅ |
✨ 결론
input_shape=(X_train.shape[1],) 을 넣으면
모델의 입력 구조가 명확히 정의되어,
디버깅·시각화·저장 시 더 안전하고 권장되는 방식입니다.
'데이터 분석' 카테고리의 다른 글
| Barplot 표 예시 설명(+ 배송 소요 시간 예측) (1) | 2025.10.16 |
|---|---|
| matplotlib 와 matplotlib.pyplot 차이 (0) | 2025.10.16 |
| UserWarning: X has feature names 경고 해결법 — StandardScaler 사용 시 꼭 알아야 할 포인트 (0) | 2025.10.16 |
| Boxplot 예시를 통해 설명(+ 장바구니 이탈 여부 예측 문제) (0) | 2025.10.15 |
| 데이터프레임과 시리즈 차이(+ 파이썬, 데이터 분석) (0) | 2025.10.12 |