나는 길이 길이가 1000 인 일련의 순서를 가지고 있는데, 길이 길이를 100으로 자른다. 그래서 저는 길이 100의 901 시퀀스로 끝납니다. 첫번째 900을 trainX
으로합시다. trainY
은이 시퀀스 중 두 번째부터 901 번째까지입니다.1 대 1 LSTM
케라에서 나는 다음 사진 모델을 만들고 싶습니다 : 중요한 특징은 $ X_1 $에서 $ X_2 $, $ X_2 $에서 $ X_3 $로 매핑된다는 것입니다. 내가 100 단위를 그려 내지 않았다는 사실을 무시하라.
케 라스에서는 $ X_1 $ ~ $ X_ {100} $이 (가) $ X_ {101} $에 매핑되는 모델을 만드는 방법을 알고 있습니다. 어떤가에 따라 수행됩니다
model = Sequential()
model.add(LSTM(32, batch_input_shape=(batch_size, time_steps, 1), stateful=True, return_sequences=True))
model.add(Dense(1))
내가 return_sequences=True
말 100 개 출력이 주어진다는 사실을 보존하려고 : 많은 경우에 많은에, 그러나
batch_size = 1
time_steps = 100
model = Sequential()
model.add(LSTM(32, batch_input_shape=(batch_size, time_steps, 1), stateful=True))
model.add(Dense(1))
, 다음과 같은 오류가 척 . 나는 Dense
이 batch_size x hidden_nodes
크기의 행렬만을 입력으로 받아들이는 반면에, 내 경우에는 출력이 batch_size x time_steps x hidden_nodes
일 것이라고 생각하면 오류 Input 0 is incompatible with layer dense_6: expected ndim=2, found ndim=3
을 얻을 수있다.
그래서 내 질문은 그림과 같이 동작하는 LSTM을 얻는 방법입니다. 밀도가 높은 레이어에서 현재 시간 단계의 앞에 숨겨진 레이어를 실수로 참조하지 않는 것이 중요합니다.
참고 : 코드를 실행하지 않았습니다. 나는 방금 그것을 썼다. – Nejla
그냥 이미이 버전의 예측을 수행하는 방법을 알고 있습니다. 제가 원한 모델은 여러분이 언급 한 것과 약간 다릅니다. "keras에서는 $ X_1 $ ~ $ X_ {100} $이 $ X_ {101} $에 매핑되는 모델을 만드는 방법을 알고 있습니다 (여러 사례에 한 건)." –