모델의 첫 번째 레이어는 LSTM입니다. 우리가지도를 볼보다도Kera에서는 model.predict 호출에서 LSTM 상태가 재설정됩니까?
>sam = np.array([ [[.5, .6, .3]], [[.6, .6, .3]], [[.5, .6, .3]] ])
>model.predict(sam)
array([[ 0.23589483],
[ 0.2327884 ],
[ 0.23589483]])
:
model.predict를 호출
은 여러 샘플을 전달 말 [[0.5, 0.6, 0.3는]] - 1 개 요소> 0.23589483 등 (순서 길이 3 인 벡터는 실수로 매핑 됨)모델의 input_length는 1이고 input_dim은 3입니다. 처음과 마지막은 같고 동일한 출력 (0.23589483)을가집니다. 따라서 Keras가 샘플 (이 경우에는 1-3D 벡터의 시퀀스)을 처리 한 후 모델의 메모리를 재설정한다고 가정합니다. 즉, 각 시퀀스는 기본적으로 독립적입니다. 이 견해에 잘못되었거나 오도 된 것이 있습니까?
input_length 3 및 input_dim 1을 사용하여 다른 예를 들으십시오. 이번에는 시퀀스 내의 값을 전환하고 다른 결과를 봅니다 (두 번째 목록을 마지막 것과 비교하십시오). 따라서 Keras가 시퀀스를 처리 할 때 메모리가 변경되지만 처리가 완료되면 메모리가 재설정됩니다 (첫 번째와 두 번째 시퀀스는 동일한 결과를 가짐).
sam = np.array([ [[.1],[.1],[.9]], [[.1],[.9],[.1]], [[.1],[.1],[.9]] ])
model.predict(sam)
array([[ 0.69906837],
[ 0.1454899 ],
[ 0.69906837]])
우리는 매핑 참조 위 [를 [0.1], [1], [9]..] -> 0.69906837 등 (실수로 3 개 요소의 순서)
좋아, 나는 가중치가 변경되지 않습니다 동의합니다. 그러나 LTSM의 메모리/상태는 어떻습니까? 그것은 "무게"로 간주되지 않습니다. 실제로 LTSM 상태가 덤프되는지 궁금합니다. – yalis
OK 당신이 내 대답을 의미하고 편집 한 것을 얻었습니다. 나는 그것이 그 질문에 답하기를 바란다. –
@yalis'stateful = True'를 사용하여 원하는 효과를 볼 수 있습니까? 필요한 경우 실습 예제를 제공 할 수 있습니다. –