2017-12-27 24 views
1

와 훈련이 내가 keras를 사용하여 간단한 LSTM 모델을 구축하고 훈련을 재개 :keras는 다음과 같이 서로 다른 학습 속도

model = Sequential() 
model.add(LSTM(activation='tanh',input_dim=6,output_dim=50,return_sequences=False)) 
model.add(Dense(output_dim=1,activation = 'sigmoid')) 
model.compile(loss='binary_crossentropy', optimizer =optimizers.Adam(lr = 0.01),metrics=['accuracy']) 
model.fit(X_train,y_train,batch_size=256,nb_epoch=1000,validation_data = (X_test,y_test)) 
model.save('model_params.h5') 

모델은 거의 수렴. 따라서 더 작은 학습 속도 (즉, 0.001)를 사용하여 학습을 재개하여 모델을 미세 조정하고 싶습니다. 내가 어떻게 이걸 얻을 수 있니?

+0

케 라스 모델을 저장하면 옵티 마이저의 상태도 저장됩니다. 'load_model' 코드 만 확인하면 해결 방법을 찾을 수 있습니다. – Nain

+0

@Nain I know. 그러나 최적화 도구 (학습 속도) 자체를 변경하고 싶습니다. 이전 모델의 매개 변수를 사용하여 모델을 재구성하고 모델을 컴파일해야하는지 궁금합니다. – MTANG

+0

yeap을 다시 컴파일해야합니다. – Nain

답변

0

당신은 단지 모델을 다시 컴파일해야합니다

model.compile(loss='binary_crossentropy', 
       optimizer= optimizers.Adam(lr=0.001),...) 

그러나 일반적으로, Adam 아주 좋은 최적화하고 변경 사항을 필요로하지 않는다. 혼자서 찾아내는 것이 정상입니다.

새로운 옵티 마이저로 컴파일 할 때 트레이닝이 분산되는 것은 매우 일반적인 현상입니다. 최적화 프로그램이 자체 조정할 때까지 몇 개의 신기원이 필요합니다.

+0

Gotcha. 감사. – MTANG

+0

감사. 그러나 새로운 사용자로서 저는 그것을 대답으로 표시하는 방법을 모릅니다. 버튼을 어디에서 찾을 수 있습니까? – MTANG