10 개의 epoch tensorflow.keras v2마다 모델 저장


10

tensorflow v2에서 하위 모듈로 정의 된 keras를 사용하고 있습니다. fit_generator()방법을 사용하여 모델을 훈련하고 있습니다 . 10 시대마다 모델을 저장하고 싶습니다. 어떻게하면 되나요?

Keras (tf의 하위 모듈이 아님)에서을 줄 수 있습니다 ModelCheckpoint(model_savepath,period=10). 그러나 tf v2에서는이 모델을 모든 시대에 저장할 수있는 ModelCheckpoint(model_savepath, save_freq)위치로 변경했습니다 . 정수인 경우 , 많은 샘플이 처리 된 후 모델이 저장됩니다. 그러나 나는 그것이 10 시대 이후가되기를 원합니다. 어떻게하면 되나요?save_freq'epoch'save_freq

답변:


5

사용 tf.keras.callbacks.ModelCheckpoint사용 save_freq='epoch'및 추가 인수를 전달 period=10.

이것은 공식 문서에 문서화되어 있지 않지만 그렇게하는 방법입니다 (전달 할 수 있다고 문서화되어 있지만 수행하는 작업을 period설명하지는 않습니다).


다음과 같은 경고가 나타납니다. WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.이 기능은 곧 출시 될 것입니다. 이 경우 어떻게해야합니까?
Nagabhushan SN

2
나는 유일한 대안은 신기원 당 예제 수를 계산하고 그 정수를 save_freq세이브 간격으로 원하는 신기원 수의 곱으로 전달하는 것입니다.
bluesummers

@bluesummers "에포크 당 예제"이것은 내 배치 크기 여야합니까?
Tom

에포크 당 예제는 체크 포인트 사이에 네트워크를 통과하려는 샘플 수입니다. 즉, 100 개의 샘플 (샘플! = 배치, 배치는 샘플 배치)이고 400을 입력하면 4 에포크마다 저장됩니다
bluesummers

1
@NagabhushanSN의 질문과 같은 질문이있었습니다. 에포크 당 샘플 수를 계산 한 후 샘플 수를 계산 한 후 모델을 저장하려고하지만 작동하지 않는 것 같습니다. 배치 크기 = 64, 테스트 케이스의 경우 에포크 당 10 단계를 사용하고 있습니다. 3 에포크마다 모델을 저장하려면 샘플 수는 64 * 10 * 3 = 1920입니다. 나는 이것을 sav_freq에 사용하지만 출력은 모델이 epoch 1, epoch 2, epoch 9, epoch 11, epoch 14에 저장되어 여전히 실행 중임을 보여줍니다. 이해할 수 없습니다. period옵션은 잘 작동하는 것으로 보이지만 더 이상 사용되지 않습니다.
beeprogrammer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.