Keras에서 TimeDistributed 래퍼가 수행하는 작업을 파악하려고합니다.
TimeDistributed는 “입력의 모든 시간 조각에 레이어를 적용합니다.”
하지만 실험을 좀 해보니 이해할 수없는 결과가 나왔습니다.
요컨대 LSTM 계층과 관련하여 TimeDistributed 및 Just Dense 계층은 동일한 결과를 나타냅니다.
model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add(TimeDistributed(Dense(1)))
print(model.output_shape)
model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add((Dense(1)))
print(model.output_shape)
두 모델 모두 (None, 10, 1) 출력 모양을 얻었습니다 .
누구든지 RNN 레이어 후 TimeDistributed와 Dense 레이어의 차이점을 설명 할 수 있습니까?
답변
으로 keras
– 일반적으로 초 측정 (샘플 사이즈로 한) – – 연속적인 모델을 구축하는 동안 관련된 time
치수. 예를 들어, 데이터가있는 경우 있음이 수단 5-dim
으로 (sample, time, width, length, channel)
사용 길쌈 층을 적용 할 수있는 당신 TimeDistributed
(에 적용 할 수 4-dim
와 (sample, width, length, channel)
시간 차원에 따라)를 얻기 위해 (각 시간 조각에 동일한 레이어를 적용) 5-d
출력을.
이있는 경우 Dense
에 있다는 것입니다 keras
버전 2.0에서 Dense
디폴트로 (당신이 적용 할 경우 예를 들어, 단지 마지막 차원에 적용되는 Dense(10)
형태로 입력 (n, m, o, p)
하면 모양 출력을 얻을 수 있습니다 (n, m, o, 10)
그래서 귀하의 경우) Dense
와 TimeDistributed(Dense)
동일합니다.