2017-12-27 12 views
2

모델 교육을 시작할 때 이전에 저장 한 모델이 없습니다. model.compile()을 안전하게 사용할 수 있습니다. 이제 checkpoint을 사용하여 추가 교육용 파일을 h5 파일에 저장했습니다.model.compile()은 Keras (tensorflow backend)의 모든 가중치와 바이어스를 초기화합니까?

말, 모델을 더욱 교육하고 싶습니다. 이 시점에서 혼란 스럽습니다. model.compile()을 여기에서 사용할 수 있습니까? 그리고 그것은 model = load_model() 진술 앞이나 뒤에 놓아야합니까? model.compile()이 모든 가중치 및 편견을 다시 초기화하는 경우 model = load_model() 문 앞에 입력해야합니다.

이전에 저장 한 모델이없는 경우에만 model.compile()이 필요하다는 메시지가 나왔습니다. 모델을 저장하면 model.compile()을 사용할 필요가 없습니다. 그것은 사실입니까 거짓입니까? 그리고 훈련 된 모델을 사용하여 예측하고 싶다면 model.compile()을 사용해야합니까?

답변

2

언제?

당신이 compile를 사용하는 경우, 반드시이 load_model() 이후 여야합니다. 결국 컴파일 할 모델이 필요합니다.

compile의 기능은 무엇입니까?

컴파일은 손실 함수 상기 최적화 메트릭을 정의한다. 그게 다야.

이것은 가중치와 아무 관계가 없으며 사전에 가중치를 적용하지 않고도 원하는만큼 모델을 컴파일 할 수 있습니다.

train에 대한 컴파일 된 모델이 필요합니다 (교육에는 손실 기능과 최적화 도구가 사용되므로). 그러나 예측을 위해 모델을 컴파일 할 필요는 없습니다.

두 번 이상 컴파일해야합니까? 당신은로드

  • 손실 함수
  • 최적화
  • 메트릭
  • (또는 생성) A : 당신은이 중 하나를 변경하려면

    • :

      경우에만 아직 컴파일되지 않은 모델. 또는로드/저장 메소드가 이전 컴파일을 고려하지 않았습니다. 다시 컴파일

    벌칙 : 다시 모델을 컴파일하는 경우

    , 당신은 최적화 상태을 잃게됩니다.

    이것은 학습 속도, 운동량 등을 조정할 때까지 처음에는 약간의 어려움을 겪을 것이라는 것을 의미합니다. 그러나 초기 학습 속도가 너무 빠르지 않는 한, 가중치에 전혀 손상이 없습니다 첫 번째 훈련 단계는 미세 조정 된 무게를 격렬하게 변화시킨다).