Skip to main content

Try in Colab

Keras 콜백

W&B는 wandb v0.13.4부터 사용할 수 있는 Keras용 콜백 세 가지를 제공합니다. 기존 WandbCallback은 아래로 스크롤하세요.
  • WandbMetricsLogger : Experiment 추적에 이 콜백을 사용하세요. 트레이닝 및 검증 메트릭과 시스템 메트릭을 Weights & Biases에 기록합니다.
  • WandbModelCheckpoint : 모델 체크포인트를 Weight and Biases Artifacts에 기록하려면 이 콜백을 사용하세요.
  • WandbEvalCallback: 이 기본 콜백은 모델 예측값을 대화형 시각화를 위해 Weights and Biases Tables에 기록합니다.
이 새로운 콜백은 다음과 같은 특징이 있습니다.
  • Keras 디자인 철학을 준수합니다.
  • 모든 작업에 단일 콜백(WandbCallback)을 사용하는 데 따른 인지적 부담을 줄입니다.
  • Keras 사용자가 콜백을 서브클래싱하여 특정 유스 케이스를 지원하도록 수정하기 쉽습니다.

WandbMetricsLogger로 Experiments 추적

Try in Colab

WandbMetricsLoggeron_epoch_end, on_batch_end 등과 같은 콜백 메서드가 인수로 사용하는 Keras의 logs 사전을 자동으로 기록합니다. 다음 항목을 추적합니다.
  • model.compile에 정의된 트레이닝 및 검증 메트릭.
  • 시스템(CPU/GPU/TPU) 메트릭.
  • 학습률(고정값 및 학습률 스케줄러 모두).

WandbMetricsLogger 참조

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

Try in Colab

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

WandbModelCheckpoint 참조

N 에포크 후에 체크포인트 기록

기본적으로(save_freq="epoch") 콜백은 각 에포크 후에 체크포인트를 만들고 아티팩트로 업로드합니다. 특정 수의 배치 후에 체크포인트를 만들려면 save_freq를 정수로 설정합니다. N 에포크 후에 체크포인트를 만들려면 train 데이터 로더의 카디널리티를 계산하여 save_freq에 전달합니다.

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

TPU에서 체크포인트를 만드는 동안 UnimplementedError: File system scheme '[local]' not implemented 오류 메시지가 발생할 수 있습니다. 이는 모델 디렉토리(filepath)가 클라우드 스토리지 버킷 경로(gs://bucket-name/...)를 사용해야 하고 이 버킷에 TPU 서버에서 엑세스할 수 있어야 하기 때문에 발생합니다. 그러나 체크포인트를 만드는 데 로컬 경로를 사용할 수 있으며, 이는 Artifacts로 업로드됩니다.

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

Try in Colab

WandbEvalCallback은 주로 모델 예측을 위해, 그리고 부차적으로 데이터셋 시각화를 위해 Keras 콜백을 빌드하는 데 사용되는 추상 기본 클래스입니다. 이 추상 콜백은 데이터셋 및 작업과 관련하여 독립적입니다. 이를 사용하려면 이 기본 WandbEvalCallback 콜백 클래스에서 상속하고 add_ground_truthadd_model_prediction 메서드를 구현합니다. WandbEvalCallback은 다음과 같은 메서드를 제공하는 유틸리티 클래스입니다.
  • 데이터 및 예측 wandb.Table 인스턴스를 만듭니다.
  • 데이터 및 예측 Tables를 wandb.Artifact로 기록합니다.
  • on_train_begin에 데이터 테이블을 기록합니다.
  • on_epoch_end에 예측 테이블을 기록합니다.
다음 예제에서는 이미지 분류 작업에 WandbClfEvalCallback을 사용합니다. 이 예제 콜백은 검증 데이터(data_table)를 W&B에 기록하고 추론을 수행한 다음 모든 에포크가 끝날 때 예측(pred_table)을 W&B에 기록합니다.
W&B Artifact 페이지에는 Workspace 페이지가 아닌 Table 로그가 기본적으로 포함되어 있습니다.

WandbEvalCallback 참조

메모리 공간 세부 정보

on_train_begin 메서드가 호출되면 data_table을 W&B에 기록합니다. W&B Artifact로 업로드되면 data_table_ref 클래스 변수를 사용하여 엑세스할 수 있는 이 테이블에 대한 참조가 생성됩니다. data_table_refself.data_table_ref[idx][n]과 같이 인덱싱할 수 있는 2D 목록이며, 여기서 idx는 행 번호이고 n은 열 번호입니다. 아래 예에서 사용법을 살펴보겠습니다.

콜백 사용자 정의

on_train_begin 또는 on_epoch_end 메서드를 재정의하여 더 세분화된 제어를 할 수 있습니다. N 배치 후에 샘플을 기록하려면 on_train_batch_end 메서드를 구현하면 됩니다.
💡 WandbEvalCallback을 상속하여 모델 예측 시각화를 위한 콜백을 구현하고 있으며 설명이 필요하거나 수정해야 할 사항이 있는 경우 문제를 열어 알려주시기 바랍니다.

WandbCallback [기존]

W&B 라이브러리 WandbCallback 클래스를 사용하여 model.fit에서 추적된 모든 메트릭 및 손실 값을 자동으로 저장합니다.
짧은 비디오 1분 이내에 Keras 및 Weights & Biases 시작하기를 시청할 수 있습니다. 자세한 내용은 비디오 Weights & Biases를 Keras와 통합하기를 시청하세요. Colab Jupyter Notebook을 검토할 수 있습니다.
스크립트(예: Fashion MNIST 예제) 및 생성되는 W&B 대시보드를 보려면 예제 리포지토리를 참조하세요.
WandbCallback 클래스는 모니터링할 메트릭 지정, 가중치 및 그레이디언트 추적, training_data 및 validation_data에 대한 예측 기록 등 다양한 로깅 구성 옵션을 지원합니다. 자세한 내용은 keras.WandbCallback에 대한 참조 문서를 확인하세요. WandbCallback
  • Keras에서 수집한 모든 메트릭(손실 및 keras_model.compile()에 전달된 항목)에서 기록 데이터를 자동으로 기록합니다.
  • monitormode 속성으로 정의된 대로 “최상” 트레이닝 단계와 연결된 run에 대한 요약 메트릭을 설정합니다. 기본값은 최소 val_loss가 있는 에포크입니다. WandbCallback은 기본적으로 최상의 epoch와 연결된 모델을 저장합니다.
  • 선택적으로 그레이디언트 및 파라미터 히스토그램을 기록합니다.
  • 선택적으로 시각화를 위해 트레이닝 및 검증 데이터를 wandb에 저장합니다.

WandbCallback 참조

자주 묻는 질문

wandbKeras 멀티프로세싱을 어떻게 사용합니까?

use_multiprocessing=True를 설정하면 다음 오류가 발생할 수 있습니다.
해결 방법:
  1. Sequence 클래스 구성에서 wandb.init(group='...')를 추가합니다.
  2. main에서 if __name__ == "__main__":를 사용하고 있는지 확인하고 스크립트 로직의 나머지 부분을 그 안에 넣습니다.