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

Checkpoint — 중단된 training 재개

~12 min · checkpoint, training, resume

Level 0Level 0
0 XP0/78 lessons0/17 achievements
0/100 XP to next level100 XP to go0% complete

5시간 충돌에서 살려주는 것

장시간 training엔 preemption, 충돌, 노트북 끊김 후 재개를 위한 스냅샷 저장 필수. tf.train.CheckpointCheckpointManager가 도구 — save_weights와 달리 임의 Python 객체 저장 가능 (optimizer state, custom step counter, 심지어 dataset도).

CheckpointManager(max_to_keep=N)은 한도 도달 시 오래된 checkpoint 자동 삭제. 장시간 run 동안 디스크 사용량 묶어둬.

패턴: checkpoint 객체 만들기, manager에 붙이기, training 시작 시 restore (checkpoint 없으면 no-op), 주기적으로 save. 5시간에 충돌하는 6시간 run이 5시간 손실이 아니라 0–10분 손실이어야 해.

Code

CheckpointManager pattern·python
import tensorflow as tf

model     = MyModel()
optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3)
step      = tf.Variable(0)

# Track all training state
ckpt = tf.train.Checkpoint(step=step, optimizer=optimizer, model=model)

# Manager auto-deletes old checkpoints
manager = tf.train.CheckpointManager(
    ckpt, directory='./tf_ckpts', max_to_keep=3,
)

# Restore from latest if exists (resumes interrupted training)
ckpt.restore(manager.latest_checkpoint)
if manager.latest_checkpoint:
    print(f"Restored from {manager.latest_checkpoint}")
else:
    print("Starting from scratch")

for epoch in range(50):
    for batch in dataset:
        train_step(model, batch, optimizer)
        step.assign_add(1)
    if epoch % 5 == 0:
        save_path = manager.save()
        print(f"Checkpoint saved: {save_path}")

Progress

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

댓글 0

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

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