keras의 ModelCheckpoint가 작동하지 않습니다


8

나는 keras에서 모델을 훈련하려고 노력하고 있으며 ModelCheckpoint 를 사용하여 모니터링 된 유효성 검사 메트릭 (제 경우 Jaccard index ) 에 따라 최상의 모델을 저장하고 있습니다 .

tensorboard에서 모델이 개선되는 것을 볼 수 있지만 가중치를로드하고 모델을 평가하려고 할 때 전혀 작동하지 않습니다. 또한 가중치를 저장 해야하는 파일의 타임 스탬프로 전혀 저장되지 않는다고 알 수 있습니다. 타임 스탬프는 대략 훈련을 시작한 시간과 일치합니다.

전에 이런 문제가 발생한 사람이 있습니까?

답변:


7

당신은 실행합니까 ModelCheckpoint기본 매개 변수 (이외에 monitor)?

ModelCheckpoint사용할 측정 항목 유형mode 을 지정 하는 매개 변수 가 있습니다. 3 개의 값을 가질 수 있으며 (기본값) :mode'min' 'max''auto'

  • min: 메트릭 을 최소화 하려는 것을 의미합니다 (예 : 손실 기능).
  • max: 측정 항목 을 최대화 하려는 경우 (예 : 정확도)
  • auto: 스스로해야 할 일을 파악하려고 시도합니다. 코드 를 보면 메트릭 이름에 포함되어 'acc'있는지 또는로 시작하는지 확인합니다 'fmeasure'. 그렇다면 모드를로 설정하고 max그렇지 않은 경우로 설정합니다 min.

귀하의 경우, 최대화하려는 메트릭 인 jaccard 인덱스를 모니터링하므로 모드를로 설정하려고 max합니다. 일반적으로 "jaccard"에는 "acc"문자열이 포함되어 있으므로 모드가 설정되어 있어도 auto제대로 작동합니다.

그러나 임의의 메트릭 이름을 임의의 이름 (예 :)으로 지정 my_metric하면 기본 모드가로 설정됩니다 min. 즉 , 메트릭에서 성능 이 가장 낮은 가중치를 저장합니다 . 이는 첫 번째 에포크의 가중치 여야합니다.

제안 : 다음에는 mode='max'확실하게 시도 하십시오.


그래, 너가 맞아. 나는 메트릭을 명명했으며 intersection_over_union아마도 가장 낮은 점수를 가진 가중치를 저장했을 것입니다. 그것은 많은 의미가 있습니다. 감사!
ILM91

천만에요. 기꺼이 도와 드리겠습니다!
MzdR
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.