그래서:
일대일 : Dense
시퀀스를 처리하지 않으므로 레이어를 사용할 수 있습니다 .
model.add(Dense(output_size, input_shape=input_shape))
일대 다 :이 옵션은 지원되지 않으며에서 모델을 연결하는 것이 그리 쉽지 Keras
않으므로 다음 버전이 가장 쉬운 버전입니다.
model.add(RepeatVector(number_of_times, input_shape=input_shape))
model.add(LSTM(output_size, return_sequences=True))
다 대일 : 실제로 코드 조각은 (거의)이 접근 방식의 예입니다.
model = Sequential()
model.add(LSTM(1, input_shape=(timesteps, data_dim)))
다 대다 : 입력 및 출력의 길이가 반복 단계 수와 일치 할 때 가장 쉬운 스 니펫입니다.
model = Sequential()
model.add(LSTM(1, input_shape=(timesteps, data_dim), return_sequences=True))
단계 수가 입력 / 출력 길이와 다를 때 다 대다 : 이것은 Keras에서 매우 어렵습니다. 이를 코딩하는 쉬운 코드 조각은 없습니다.
수정 : 광고 5
최근 애플리케이션 중 하나에서 우리 는 4 번째 이미지의 다 대다 와 유사한 것을 구현했습니다 . 다음 아키텍처의 네트워크를 원할 경우 (입력이 출력보다 긴 경우) :
O O O
| | |
O O O O O O
| | | | | |
O O O O O O
다음과 같은 방법으로이 작업을 수행 할 수 있습니다.
model = Sequential()
model.add(LSTM(1, input_shape=(timesteps, data_dim), return_sequences=True))
model.add(Lambda(lambda x: x[:, -N:, :]
N
다룰 마지막 단계의 수는 어디에 있습니까 (이미지에서 N = 3
).
이 시점부터 :
O O O
| | |
O O O O O O
| | |
O O O
적절한 크기로 조정하기 위해 N
예를 들어 0
벡터 와 함께 사용 하는 길이의 인위적인 패딩 시퀀스만큼 간단 합니다.