🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

save_freq 오류가 발생합니다.

21.08.18 21:51 작성 조회수 605

0

안녕하세요 선생님.

수업내용대로 period를 사용하다가 아래와 같은 경고 문구가 나와서 save_freq를 사용했습니다.

tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.

save_freq='epoch'를 사용하면 문제가 없지만, 숫자를 입력하여 사용하면  아래와 같은 에러가 게속 발생하고 있습니다.

KeyError: 'Failed to format this callback filepath: "/content/weights.{epoch:03d}-{val_loss:.2f}.h5". Reason: \'val_loss\''

저는 kaggle이 아니라 colab에서 사용했습니다. 아래는 실행했던 코드입니다.

from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras.optimizers import Adam

model = create_model()
model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy'])

mcp_cb = ModelCheckpoint(filepath='/content/weights.{epoch:02d}-{val_loss:.2f}.h5',
        monitor='val_loss', save_best_only=True, save_weights_only=True, mode='min', save_freq=3, verbose=1)

history = model.fit(x=tr_images, y=tr_oh_labels, batch_size=128, epochs=10, validation_data=(val_images, val_oh_labels), callbacks=[mcp_cb])

답변 1

답변을 작성해보세요.

1

안녕하십니까,

저도 save_freq에 epoch외에는 사용해보진 않았습니다. 만약 숫자값을 넣으면 해당 batch step 수만큼 학습 할 때마다 checkpoint를 만들게 되는데, 현재 filepath가 그걸 수용하게 되어 있지 않은것 같습니다. 

사실 이걸 수용할 수 있게 keras에서 지원하지 않는 것 같습니다. 지금 기능이 지원되었는지 확실 하지 않습니다. 

아래 기능 요청건 확인해 보시지요. 

https://github.com/tensorflow/tensorflow/issues/38668

그리고 숫자값을 넣게 되면 너무 많은 checkpoint 파일을 만들게 됩니다. 굳이 만드실 필요는 없어 보입니다만,  꼭 만드셔야 겠다면 기능이 추가되었는지 해당 github에서 모니터링을 더 해보셔야 할 것 같습니다. 

guentc1님의 프로필

guentc1

질문자

2021.08.20

선생님, 항상 답변 감사드립니다. 

알려주신 요청건 확인하고 찾아보겠습니다~!

채널톡 아이콘