當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。