Skip to main content
W&B Keras callback을 사용하여 실험을 추적하고, 모델 체크포인트를 로깅하며, 트레이닝 중 모델 예측을 시각화하세요. 이 인테그레이션을 사용하여 Keras 트레이닝 워크플로에 실험 추적과 모델 버전 관리를 추가하세요. 트레이닝 루프를 다시 작성할 필요가 없습니다. Keras callback은 Python SDK 버전 0.13.4 이상의 wandb.integration.keras 모듈에서 사용할 수 있습니다. W&B Keras 인테그레이션은 다음 callback을 제공합니다:
  • WandbMetricsLogger: 실험 추적을 위해 이 callback을 사용하세요. 트레이닝 및 검증 메트릭과 시스템 메트릭을 W&B에 로깅합니다.
  • WandbModelCheckpoint: 모델 체크포인트를 W&B Artifacts에 로깅하기 위해 이 callback을 사용하세요.
  • WandbEvalCallback: 이 기본 callback은 W&B Tables에 모델 예측을 로깅하여 대화형 시각화를 제공합니다.

Keras 인테그레이션 설치 및 임포트하기

W&B의 최신 버전을 설치하세요.
Keras 인테그레이션을 사용하려면 wandb.integration.keras에서 필수 클래스를 임포트하세요.
다음 섹션에서는 코드 예시와 함께 각 callback을 자세히 설명합니다.

WandbMetricsLogger로 실험 추적하기

wandb.integration.keras.WandbMetricsLogger()는 on_epoch_end, on_batch_end 등의 callback 방법이 인수로 받는 Keras의 logs 딕셔너리를 로깅합니다. 다음은 Keras 워크플로에서 WandbMetricsLogger()를 사용하는 방법을 보여 주는 부분 예시입니다. 먼저 원하는 옵티마이저, 손실 함수, 메트릭을 지정하여 모델을 컴파일합니다. 다음으로 wandb.init()으로 W&B run을 초기화합니다. 마지막으로 WandbMetricsLogger() callback을 model.fit()에 전달합니다.
앞의 예시는 각 에포크가 끝날 때마다 loss, accuracy, top@5_accuracy 등의 트레이닝 및 검증 메트릭을 W&B에 로깅합니다.

WandbMetricsLogger 레퍼런스

WandbModelCheckpoint를 사용하여 모델 체크포인트 저장하기

WandbModelCheckpoint callback을 사용하면 Keras 모델(SavedModel 형식) 또는 모델 가중치를 주기적으로 저장하고, 모델 버전 관리를 위해 wandb.Artifact로 W&B에 업로드할 수 있습니다. 이 callback은 tf.keras.callbacks.ModelCheckpoint()의 하위 클래스이므로, 체크포인트 저장 로직은 상위 callback에서 처리합니다. 이 callback으로 다음을 저장할 수 있습니다.
  • 모니터를 기준으로 최고 성능을 달성한 모델
  • 성능과 관계없이 각 에포크가 끝날 때의 모델
  • 에포크가 끝날 때 또는 지정된 수의 트레이닝 배치를 처리한 후의 모델
  • 모델 가중치만 또는 전체 모델
  • SavedModel 형식 또는 .h5 형식의 모델
이 callback은 WandbMetricsLogger()와 함께 사용하세요.

WandbModelCheckpoint 레퍼런스

N 에포크마다 체크포인트 로깅하기

기본값(save_freq="epoch")에서는 callback이 에포크가 끝날 때마다 체크포인트를 생성하고 이를 아티팩트로 업로드합니다. 특정 배치 수마다 체크포인트를 생성하려면 save_freq를 정수로 설정하세요. N 에포크마다 체크포인트를 생성하려면 train 데이터로더의 카디널리티를 계산한 후 이 값을 save_freq에 전달하세요:

TPU 아키텍처에서 체크포인트를 효율적으로 로깅하기

TPU에서 체크포인트 저장할 때 UnimplementedError: File system scheme '[local]' not implemented 오류 메시지를 만날 수 있습니다. 이는 모델 디렉터리(filepath)가 클라우드 저장소 버킷 경로(gs://bucket-name/...)를 사용해야 하며, 이 버킷은 TPU 서버에서 액세스할 수 있어야 하기 때문입니다. 대신 W&B는 체크포인트 저장을 위해 로컬 경로를 사용하며, W&B는 이를 아티팩트로 업로드합니다.

WandbEvalCallback을 사용하여 모델 예측 시각화

WandbEvalCallback()은 주로 모델 예측, 부차적으로 데이터셋 시각화를 위한 Keras callback을 구축하기 위한 추상 기본 클래스입니다. 이 추상 callback은 데이터셋과 작업에 독립적입니다. 이를 사용하려면 이 기본 WandbEvalCallback() callback 클래스에서 상속받고 add_ground_truth 및 add_model_prediction 방법을 구현하세요. WandbEvalCallback()은 다음을 제공하는 유틸리티 클래스입니다:
  • 데이터 및 예측 wandb.Table() 인스턴스를 생성합니다.
  • 데이터 및 예측 table을 wandb.Artifact()로 로깅합니다.
  • on_train_begin 시 data table을 로깅합니다.
  • on_epoch_end 시 prediction table을 로깅합니다.
다음 예시는 이미지 분류 작업에 WandbClfEvalCallback을 사용합니다. 이 예시 callback은 검증 데이터(data_table)를 W&B에 로깅하고, 추론을 수행한 후 매 에포크 종료 시 예측(pred_table)을 W&B에 로깅합니다.

WandbEvalCallback 레퍼런스

메모리 사용량 세부 정보

W&B는 on_train_begin 방법을 호출할 때 data_table을 로깅합니다. W&B가 이를 W&B 아티팩트로 업로드한 후, 이 table에 대한 레퍼런스를 얻을 수 있으며, data_table_ref 클래스 변수를 사용하여 액세스할 수 있습니다. data_table_ref는 self.data_table_ref[idx][n]처럼 인덱싱할 수 있는 2D 목록이며, 여기서 idx는 행 번호이고 n은 열 번호입니다. 다음 예시에서 사용법을 확인하세요.

callback 사용자 지정

데이터와 예측이 로깅되는 시점을 더 세밀하게 제어하려면 기본 callback 방법을 재정의하면 됩니다. on_train_begin 또는 on_epoch_end 방법을 재정의하면 더욱 세밀하게 제어할 수 있습니다. N개 배치 이후에 샘플을 로깅하려면 on_train_batch_end 방법을 구현하세요.
WandbEvalCallback을 상속하여 모델 예측 시각화용 callback을 구현하다가 설명이 더 필요하거나 수정이 필요한 부분을 발견하면 이슈를 등록하세요.

레거시 WandbCallback

WandbCallback은 레거시 all-in-one callback입니다. 새 프로젝트에서는 이전 섹션에서 설명한 전용 callback(WandbMetricsLogger, WandbModelCheckpoint, WandbEvalCallback)을 사용하세요. model.fit()에서 추적하는 모든 메트릭과 손실 값을 저장하려면 W&B 라이브러리의 WandbCallback() 클래스를 사용하세요.
짧은 비디오 Get Started with Keras and W&B in Less Than a Minute를 시청해 보세요. 더 자세한 비디오는 Integrate W&B with Keras를 시청하세요. Colab Jupyter Notebook도 함께 확인할 수 있습니다. 더 많은 샘플 스크립트는 W&B 예시 저장소를 참조하세요. 이 저장소에는 Fashion MNIST 예시와 이 예시로 생성된 W&B 대시보드가 포함되어 있습니다. WandbCallback 클래스는 모니터링할 메트릭 지정, 가중치 및 그라디언트 추적, training_data 및 validation_data에 대한 예측 로깅 등 다양한 로깅 설정 옵션을 지원합니다. 전체 세부 정보는 keras.WandbCallback 레퍼런스 문서를 참조하세요. WandbCallback:
  • Keras가 수집하는 모든 메트릭(loss 및 keras_model.compile()에 전달한 모든 항목)의 이력 데이터를 로깅합니다.
  • monitor 및 mode 속성으로 정의된 “최적” 트레이닝 step을 기준으로 run의 summary 메트릭을 설정합니다. 기본값은 val_loss가 최소인 에포크입니다. 기본적으로 WandbCallback은 최적의 epoch에 연결된 모델을 저장합니다.
  • 필요에 따라 그라디언트 및 매개변수 히스토그램을 로깅합니다.
  • 필요에 따라 wandb에서 시각화할 수 있도록 트레이닝 및 검증 데이터를 저장합니다.

WandbCallback 레퍼런스

자주 묻는 질문

Keras 멀티프로세싱을 wandb와 함께 사용

use_multiprocessing=True를 설정하면 이 오류가 발생할 수 있습니다:
이를 해결하려면:
  1. Sequence 클래스 생성 시 다음을 추가하세요: wandb.init(group='...').
  2. main에서 if __name__ == "__main__":을 사용하고, 스크립트의 나머지 로직을 그 안에 넣으세요.
마지막 수정일 2026년 9월 30일