본문 바로가기
IT 프로그래밍 관련/딥러닝

epoch마다 기록을 남기는 CSVLogger

by 지나는행인 2021. 3. 4.
728x90

epoch마다 가장 좋은 모델을 찾아 저장하는 ModelCheckpoint도 있지만,

 

epoch마다 그 훈련 기록을 저장하는 CSVLogger도 있다.

 

사용을 하기 위해 먼저 라이브러리 적용 후 

 

 

from tensorflow.keras.callbacks import CSVLogger

csv_logger = CSVLogger(filename=LOGFILE_PATH, append = True)

   CSVLogger를 설정하고 변수에 저장한다.

filename= : 저장할 파일명. csv

append = : True로 설정시 기록을 덮어쓰지않고 차례로 계속 저장한다.

이외 separator도 자주 쓴다. csv파일에서 요소를 구분하는데 뭘로 구분할것인지..(ex)separator=','

 

후에 모델 훈련시 사용한다.

 

 

history = model.fit(trainGen.flow(X_train, y_train, batch_size=64),
                    steps_per_epoch = len(X_train) // 64,
                    validation_data = (X_val, y_val),
                    validation_steps = len(X_val) // 64,
                    callbacks = csv_logger,
                    epochs = 50
)

  csv파일로 저장되고 DataFrame으로 불러올수 있다.

 

  epoch                        accuracy                    loss                         val_accuracy                   val_loss

0 0.179963 2.442203 0.186667 1.957881
1 0.218924 2.103565 0.213333 1.819962
2 0.319444 1.878288 0.373333 1.687726
3 0.346939 1.727957 0.546667 1.562017
4 0.415584 1.612291 0.626667 1.445411

댓글