나는 cifar10 데이터 세트의 시작 v3 모델을 미세하게 튜닝했다. 그것을 저장하고 난 후에, 모델의 크기는 175 Mo 다. 훈련 전에 그것은 약 90 Mo 다. 그래서 나는 잘 조정되었던 모델이 더 큰지 궁금하게 생각하고있다? 두 모델의 매개 변수 수를 보면 거의 동일합니다.모델의 케라 무게가 예상보다 크다
원래 모델 : 총 PARAMS : 23851784 학습 가능한 PARAMS : 23817352 비 학습 가능한 PARAMS : 34,432
미세 조정 모델 : 총 PARAMS : 21823274 학습 가능한 PARAMS : 21788842 비 학습 가능한 PARAMS : 34,432
누구에게이 아이디어가 있습니까? 모델을 저장하기 위해 피트 생성기 함수 내 콜백에서 ModelCheckpoint 함수를 사용합니다.
기본적으로checkpoints = ModelCheckpoint(output+'-{epoch:02d}.hdf5', verbose=1, save_best_only=False, period=checkpoint)
callbacks_list = [callback_tensorboard, checkpoints]
# train
model.fit_generator(train_generator,
steps_per_epoch=step_train,
epochs=epochs,
verbose=1,
validation_data=test_generator,
validation_steps=step_test,
callbacks=callbacks_list)
"옵티 마이저의 상태이므로 검사 점에서 직접 교육을 재개 할 수 있습니다."기하 급수적 인 이동 평균을 에포크의 중간에 저장한다는 의미입니까? 기차를 시작하기 전에 한 번 저장하면 훈련하는 동안 왜 모델을 저장해야하는지 이해하지 못합니다. 훈련을 다시 시작하려면 마지막으로 완료 한 시간대의 가중치로 다시 훈련을 시작해야합니다. 내 의견으로는 save_weights_only가 유용하지 않습니까? 항상 참이어야합니다. 훈련 중에 모델을 저장하고 싶은 경우를 실제로 찾을 수는 없습니까? –
@StavBodik 그것은 신기원의 중간에 있지 않으며 보통 하나의 끝에 있습니다. 저장된 이동 평균으로 시작하지 않으면 훈련이 불안정하거나 다를 수 있습니다. –
그러나 무게는 어쨌든 저장됩니다. 이것은이 체크 포인트의 가장 중요한 기능 중 하나입니다. 왜 훈련 중에 모델을 저장해야합니까? 정의에 의한 모델은 기차에서 변함없는 일정한 것이 있습니다. –