C.W.K.
Stream
Lesson 08 of 08 · published

실전 — 전체 학습 파이프라인

~8 min · training

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

이 트랙 전부를 조립

보상 lesson 이야. 여태 만난 일곱 개념 — model, compile, optimizer, loss, metrics, fit, callback — 이 하나의 스크립트로 딱 맞물려, 앞으로 커리어 내내 재활용할 그 스크립트. Code 섹션을 위에서 아래로 읽으면 줄마다 무슨 일 하는지 다 이름 댈 수 있어야 해. 그 인식이 *곧* 실력이고, syntax 는 겉껍데기일 뿐.

왜 하필 이 뼈대냐

구조는 아무렇게나 정한 게 아니야. build 가 먼저 — model 없으면 뒤가 다 존재 못 하니까. Dropout 두 개는 overfitting 발견하고 나서 덧붙이는 게 아니라 처음부터 박힌 regularization. compile 이 Adam, loss, accuracy 를 묶고. callback list 는 지난 lesson 의 협상 불가 핵심 그대로 — epoch 낭비 막는 EarlyStopping, crash 나도 run 안 잃는 ModelCheckpoint, 멈춘 plateau 짜내는 ReduceLROnPlateau. 그다음 fit() 한 호출이 루프 전체 돌리고 history 반환.

build → compile → callbacks → fit 이 순서를 몸에 새겨. 그러면 앞으로 짤 거의 모든 supervised-learning 스크립트가 이 빈칸 채우기 변형이 돼 — layer 를 네 architecture 로, loss 를 네 task 로, data 를 네 문제로 갈아끼우면 뼈대는 그대로. 실전 확장은 여기에 keras.datasets.cifar10.load_data(), augmentation pipeline, 마지막에 model.save('cifar10.keras') 만 더 얹으면 끝. 그 재활용성이 바로 이 quest 가 훈련시키는 구조적 사고야.

Code

전체 파이프라인: build → compile → callbacks → fit·python
import keras
from keras import layers

# Build model
model = keras.Sequential([
    keras.Input(shape=(784,)),
    layers.Dense(256, activation="relu"),
    layers.Dropout(0.3),
    layers.Dense(128, activation="relu"),
    layers.Dropout(0.2),
    layers.Dense(10, activation="softmax"),
])

# Compile
model.compile(
    optimizer=keras.optimizers.Adam(1e-3),
    loss="sparse_categorical_crossentropy",
    metrics=["accuracy"],
)

# Callbacks
callbacks = [
    keras.callbacks.EarlyStopping(
        monitor="val_loss", patience=5,
        restore_best_weights=True,
    ),
    keras.callbacks.ModelCheckpoint(
        "best.keras", save_best_only=True,
    ),
    keras.callbacks.ReduceLROnPlateau(
        factor=0.5, patience=3,
    ),
]

# Train
history = model.fit(
    x_train, y_train,
    epochs=50,
    batch_size=32,
    validation_split=0.2,
    callbacks=callbacks,
)

External links

Exercise

CIFAR-10 의 위 파이프라인 전체 구현. 20 epoch 안에 test accuracy ≥70%. 스크립트를 train_cifar10.py 로 저장 — 향후 image classification 의 프로젝트 템플릿으로.

Progress

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

댓글 0

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

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