当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python tf.keras.layers.Bidirectional用法及代码示例

RNN 的双向包装器。

继承自:WrapperLayerModule

用法

tf.keras.layers.Bidirectional(
    layer, merge_mode='concat', weights=None, backward_layer=None,
    **kwargs
)

参数

  • layer tf.keras.layers.RNN例如,例如tf.keras.layers.LSTM或者tf.keras.layers.GRU.它也可能是一个tf.keras.layers.Layer满足以下条件的实例:
    1. 成为sequence-processing 层(接受 3D+ 输入)。
    2. 具有go_backwards , return_sequencesreturn_state 属性(与RNN 类具有相同的语义)。
    3. 具有input_spec 属性。
    4. 通过 get_config()from_config() 实现序列化。请注意,创建新 RNN 层的推荐方法是编写自定义 RNN 单元并将其与 keras.layers.RNN 一起使用,而不是直接继承 keras.layers.Layer
    5. returns_sequences 为真时,无论图层的原始 zero_output_for_mask 值如何,屏蔽时间步的输出都将为零。
  • merge_mode 组合前向和后向 RNN 的输出的模式。 {'sum'、'mul'、'concat'、'ave'、无}之一。如果为 None,则不会合并输出,它们将作为列表返回。默认值为'concat'。
  • backward_layer 可选的 keras.layers.RNNkeras.layers.Layer 实例用于处理反向输入处理。如果未提供backward_layer,则作为layer 参数传递的层实例将用于自动生成后向层。请注意,提供的 backward_layer 层应具有与 layer 参数匹配的属性,特别是对于 stateful , return_states , return_sequences 等应具有相同的值。此外,backward_layerlayer 应具有不同的 go_backwards 参数值。如果不满足这些要求,将引发 ValueError

抛出

  • ValueError
    1. 如果 layerbackward_layer 不是 Layer 实例。
    2. 如果 merge_mode 参数无效。
    3. 如果 backward_layerlayer 相比具有不匹配的属性。

属性

  • constraints

调用参数:

该层的调用参数与包装的 RNN 层的调用参数相同。注意,在调用这一层的过程中传递initial_state参数时,initial_state列表中元素列表的前半部分将被传递给前向RNN调用,元素列表中的后半部分将被传递到反向 RNN 调用。

例子:

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')

 # With custom backward layer
 model = Sequential()
 forward_layer = LSTM(10, return_sequences=True)
 backward_layer = LSTM(10, activation='relu', return_sequences=True,
                       go_backwards=True)
 model.add(Bidirectional(forward_layer, backward_layer=backward_layer,
                         input_shape=(5, 10)))
 model.add(Dense(5))
 model.add(Activation('softmax'))
 model.compile(loss='categorical_crossentropy', optimizer='rmsprop')

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.layers.Bidirectional。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。