3

model.fit()을 사용하여 훈련 된 모델을 가지고 model.save()을 사용하여 실제 파일에 저장합니다. 이제 저장된 모델로 교육을 재개하려는 다른 데이터 세트가 있습니다. 그러나 나는 모든 fit() 전화가 신선한 훈련으로 간주된다는 것을 알았습니다. 즉, 생성되고 저장되었던 가중치를 다시 초기화하는 것입니다.keras.fit() 가중치를 다시 초기화합니다.

에포크 0을 사용하여 fit()을 호출하면 체중 재설정 문제가 표시되지 않습니다. 그러나, 나는 확실히 에포크를 가지고 시험해보고 싶다.

나는 여기에 뭔가가 없거나 케라스에 문제가있다.

Keras 버전 : 2.0.3

감사합니다.

+0

회선을 일괄 처리로 사용 중일 수 있습니다. – maz

+0

일괄 처리는 마지막 옵션 중 하나입니다. 나는 이것이 fit() 또는 다른 것의 문제인지 알고 싶다. – paachi

+0

어느 방향 으로든 열차에 훈련해야한다. 문제가 해결되면 문제가 해결됩니다. 그렇지 않으면 데이터 세트 또는 다른 것이어야합니다. – maz

답변

0

전화 걸기는 가중치를 다시 초기화하지 않아야합니다.

당신은 새로운 데이터 세트를 사용하고 있다고 쓰고 있습니다.이 데이터 세트가 다른 통계를 가지고 있으면 쉽게 그물이 정확도를 잃을 수도 있습니다. 이 경우, 아주 작은 학습 속도를 시도하거나 초기 몇 개의 신기원 동안 초기 계층에 대해 trainable = False로 설정하십시오. 사실

+0

가중치를 다시 초기화합니다. 코드를 공유하고 싶었지만 GAN을 만드는 것처럼 약간 복잡합니다. 왜 낮은 학습률을 설정하거나 trainable = False로 설정하면 재 초기화 문제의 문제점을 해결할 수 있다고 생각하십니까? – paachi

+0

https://keras.io/applications/의 코드를 살펴보면 재 훈련 모델에 대한 몇 가지 예가 나와 있습니다. 이 방법이 도움이되지 않는다면, train_on_batch를 사용하여 몇 가지 예제를 학습하고, 가중치가 다시 초기화되는지 아니면 잘못된 방향으로 매우 빨리 꺼내 지는지 판단하는 것이 좋습니다. 후자의 경우, 학습 속도와 훈련 가능성에 대한 제 제안이 사용될 수 있습니다. – pgrenholm

4

-fit를 호출의 경우는 다음

  1. 무게가를 재설정하지 않습니다 - 모델은 fit를 호출하기 전에 정확히 동일한 가중치를 가질 것 - 물론 최적화 알고리즘 원까지 ' 첫 번째 배치에서 변경하십시오.

  2. 모델 상태는으로 재설정됩니다. 모든 옵티 마이저 상태와 모델 숨김 상태 (특히 rnn 경우)가 재설정됩니다. 이것은 바뀐 유일한 것입니다. 이 값들을 유지하기를 원한다면 (특히 옵티 마이저 상태는 많은 경우에 중요합니다) - 모델의 상태에 전혀 영향을주지 않는 train_on_batch 메소드를 사용할 수 있습니다.

관련 문제