keras.layers.wrappers.TimeDistributed(layer)
입력의 매 시간 조각에 계층을 적용시키는 wrapper 입니다.
입력은 최소한 3차원이어야 하며 인덱스 차원은 시간 차원으로 간주됩니다.
각각이 16차원의 10개 벡터로 된 시퀀스인 샘플 32개로 이루어진 batch의 경우라면 계층에 대한 batch의 입력 형태는 (32, 10, 16)
이 되며 샘플 차원을 포함하지 않는 input_shape
은 (10, 16)
이 됩니다.
매 10 시간 단계마다 Dense
계층을 독립적으로 적용하기 위해 TimeDistributed
를 사용해 보자면:
# as the first layer in a model
model = Sequential()
model.add(TimeDistributed(Dense(8), input_shape=(10, 16)))
# now model.output_shape == (None, 10, 8)
그러면 출력은 다음 형태를 띄게 됩니다: (32, 10, 8)
.
다음 계층에서 input_shape
은 필요가 없어집니다:
model.add(TimeDistributed(Dense(32)))
# now model.output_shape == (None, 10, 32)
그러면 출력은 다음 형태를 띄게 됩니다: (32, 10, 32)
.
TimeDistributed
은 임의의 계층과 사용될 수 있으나 Dense
계층과는 안 되며, Conv2D
계층의 인스턴스와는 다음과 같이 쓸 수 있습니다:
model = Sequential()
model.add(TimeDistributed(Conv2D(64, (3, 3)),
input_shape=(10, 299, 299, 3)))
인수
keras.layers.wrappers.Bidirectional(layer, merge_mode='concat', weights=None)
RNNs에 대한 양방향 wrapper 입니다.
인수
Recurrent
인스턴스 입니다.예외 발생
merge_mode
인수인 경우 입니다.예제
model = Sequential()
model.add(Bidirectional(LSTM(10, return_sequences=True),
input_shape=(5, 10)))
model.add(Bidirectional(LSTM(10)))
model.add(Dense(5))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
이 문서는 Keras의 Layers Wrappers을 번역한 것입니다.