2017-03-13 4 views
3

나는 순차적 인 데이터를 가지고 있으며 Kerach에서 yx을 예측하는 LSTM 모델을 선언했다. 따라서 model.predict(x1)model.predict(x2)으로 전화하면 model.reset_states을 두 predict() 사이에 명시 적으로 호출 할 수 있습니까? model.reset_states 가중치가 아닌 입력 내용을 삭제합니까?Keras에서 model.reset_states()를 사용하는 방법?

# data1 
x1 = [2,4,2,1,4] 
y1 = [1,2,3,2,1] 

# dat2 
x2 = [5,3,2,4,5] 
y2 = [5,3,2,3,2] 

그리고 실제 코드에서는 model.evaluate()를 사용합니다. evaluate()에서 reset_states는 각 데이터 샘플에 대해 암묵적으로 호출됩니까?

model.evaluate(dataX, dataY) 

답변

4

reset_states은 네트워크의 숨겨진 상태 만 지 웁니다. 네트워크에 옵션 stateful=True이 설정되어 있는지 여부에 따라이 기능의 동작이 다를 수 있습니다. 설정되지 않은 경우 네트워크의 모든 일괄 계산 후에 모든 상태가 자동으로 재설정됩니다 (예 : fit, predictevaluate이라고도 부름). 그렇지 않은 경우 연속적인 모델 호출을 독립적으로 만들고자 할 때마다 매번 reset_states으로 전화해야합니다.

+0

알겠습니다. stateful 옵션 (기본값 = false)을 설정하지 않으면 reset_states를 호출 할 필요가 없습니다. 그리고 stateful = True를 사용해야하는 경우를 말해 줄 수 있습니까? – jef

+1

네, 맞습니다. 'stateful = True'는 대개 연속적인 입력을 연속적인 입력으로 처리하고자 할 때 사용됩니다. 이 경우 모델은 동일 배치에서와 동일한 연속 일괄 처리를 처리합니다. –

+0

고맙습니다. 나는 너의 대답을 받아 들인다. – jef

관련 문제