Keras에서 입력 데이터는 [샘플, 시간 단계, 기능] 형식입니다. 이는 데이터가 특정 길이의 시퀀스로 구성되어 있으며 각 시퀀스에는 여러 기능이 포함되어 있음을 의미합니다.
예를 들어 3개의 시간 단계(분홍색 상자)와 1개의 기능(파란색 상자)이 있는 아래 시각화를 살펴보세요. box):
[시간 단계를 나타내는 분홍색 상자 3개와 특성을 나타내는 파란색 상자 1개의 이미지]
이 경우 데이터의 모양은 (1, 3, 1) 여기서:
이란 무엇입니까? Stateful LSTM?
Stateful LSTM은 배치 전반에 걸쳐 내부 상태를 유지합니다. 즉, 특정 시간 단계의 출력은 해당 시간 단계의 입력뿐만 아니라 그 이전의 입력에도 영향을 받습니다. . 이는 시계열 예측이나 자연어 처리 등 모델이 이전 정보를 기억해야 하는 작업에 유용할 수 있습니다.
배치 크기가 상태 저장 LSTM에 미치는 영향
상태 저장 LSTM을 사용하면 배치 크기에 따라 한 번에 처리되는 시퀀스 수가 결정됩니다. 배치 크기가 1이면 모델은 각 시퀀스를 개별적으로 처리하고 내부 상태를 유지합니다. 이는 시계열 예측과 같이 시퀀스의 순서가 중요한 작업에 유용할 수 있습니다.
배치 크기가 1보다 큰 경우 모델은 여러 시퀀스를 병렬로 처리하고 내부 상태를 전체에서 공유합니다. 그들을. 이는 훈련에 더 효율적일 수 있지만, 특히 시퀀스 순서가 중요한 작업의 경우 모델의 정확성을 떨어뜨릴 수도 있습니다.
Stateful LSTM 사용 예
다음은 상태 저장 LSTM 네트워크를 사용하여 한 번에 다음 값을 예측하는 예제 코드 조각입니다. series:
<code class="python">model = Sequential() model.add(LSTM(4, batch_input_shape=(1, look_back, 1), stateful=True)) model.add(Dense(1)) model.compile(loss='mean_squared_error', optimizer='adam') # Train the model for i in range(100): model.fit(trainX, trainY, nb_epoch=1, batch_size=1, verbose=2, shuffle=False) model.reset_states()</code>
이 예에서 모델은 배치 크기 1을 사용하여 학습됩니다. 즉, 각 시퀀스가 개별적으로 처리됩니다. stateful=True 인수는 모델이 배치 전반에 걸쳐 내부 상태를 유지하도록 지시합니다. Reset_states() 함수는 각 시퀀스가 처리된 후 내부 상태를 재설정하는 데 사용됩니다.
위 내용은 Keras의 Stateful LSTM에 배치 크기가 미치는 영향은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!