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

model.fit()

~8 min · training

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

한 호출에 학습 루프 전체

model.fit()compile() 에서 설정한 모든 게 드디어 돌아가는 곳이야. 호출 하나 밑에 루프 전부 숨어있어 — batching, forward pass, loss, backprop, optimizer step, metric 누적, 그리고 경계마다 터지는 callback bus. Code 섹션의 인자들이 제일 자주 만지는 손잡이 — epochs 는 data 를 몇 번 훑을지, batch_size 는 gradient step 하나에 몇 sample 먹일지, validation 은 두 방식 중 하나로 연결.

결과를 진짜 바꾸는 인자들

전용 validation set 이 없으면 validation_split=0.2 로 training data 꼬리에서 떼어 써. 있으면 validation_data=(x_val, y_val) — 이게 정직한 선택이야. validation_split 은 셔플 없이 *마지막* 조각을 잘라서, 정렬된 dataset 이면 validation set 이 쓰레기가 돼. class_weight 는 imbalanced data 의 지렛대 — 희귀 class 의 weight 를 올려서 그 실수가 더 무겁게 세지게, model 이 다수 class 만 찍어서 이기는 걸 막아.

뭘 넘기든 fit()History 객체 를 돌려줘. .history 가 epoch 별 list 들의 dict — loss, val_loss, 모든 metric 과 그 val_ 쌍둥이. learning curve 전체가 여기 있어. data 가 큰 경우 generator / tf.Dataset / torch.DataLoader 도 fit() 이 알아서 처리하고, 다음 lesson 의 callback 들이 학습 도는 동안 이 curve 에 자동으로 반응해.

Code

model.fit() 핵심 인자와 History 객체·python
history = model.fit(
    x_train, y_train,
    epochs=20,                 # Number of passes through the data
    batch_size=32,              # Samples per gradient update
    validation_split=0.2,       # Use 20% of training data for validation
    # OR: validation_data=(x_val, y_val),
    class_weight={0: 1.0, 1: 5.0},  # For imbalanced data
    callbacks=[...],              # List of callback instances
)

# history.history contains loss/metric values per epoch
print(history.history["loss"])         # [0.83, 0.54, 0.41, ...]
print(history.history["val_accuracy"]) # [0.72, 0.81, 0.85, ...]

External links

Exercise

MNIST 10 epoch 학습. history.history 저장. training/validation loss, accuracy 를 두 subplot 에 그려. validation loss 가 다시 올라가기 시작하는 epoch 식별.

Progress

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

댓글 0

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

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