keras包装器wrapper

Bidirectional

keras.layers.Bidirectional(layer, merge_mode='concat', weights=None)

RNN层的双向包装器。

  • layer: RNN层实例
  • merge_mode: 前后向输出的结合方式,{‘sum’,’mul’,’concat’,’ave’,None};若None则不结合,以列表形式返回

实例

model = Sequential()
model.add(Bidirectional(LSTM(10, return_sequences=True), input_shape=(5,10)))
model.add(Bidirectional(LSTM(10)))
model.add(Desnse(5))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')

TimeDistributed

keras.layers.TimeDistributed(layer)

将层应用到输入的每个时间切片上。
输入数据至少有3个维度,其中第1个维度将会被认为是时间维。
例如有32个example的batch,数据形状为(32,10,16),那么input_shape 就是(10,16),其中10将会被当做时间维。

实例

model = Sequential()
model.add(TimeDistributed(Dense(8), input_shape=(10,16)))

# with Conv2D
model.add(TimeDistributed(Conv2D(64,(3,3)), input_shape=(10,299,299,3)))