Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.keras.layers.Bidirectional

TensorFlow 1 wersja Zobacz źródło na GitHub

Dwukierunkowy wrapper dla RNNs.

Dziedziczy: Wrapper

Stosowany w notebookach

Używany w przewodniku Używany w samouczków

layer keras.layers.RNN przykład, jak keras.layers.LSTM lub keras.layers.GRU . Może to być również keras.layers.Layer instancja, która spełnia następujące kryteria:

  1. Być warstwą sekwencja przetwarzania (przyjmuje 3D + wejścia).
  2. Mają go_backwards , return_sequences i return_state atrybut (o tej samej semantyki jak dla RNN klasa).
  3. Masz input_spec atrybut.
  4. Realizować poprzez szeregowanie get_config() i from_config() . Należy zauważyć, że zalecanym sposobem tworzenia nowych warstw RNN jest napisać niestandardowy komórkę RNN i używać go z keras.layers.RNN zamiast instacji keras.layers.Layer bezpośrednio.
merge_mode Sposób, w którym sygnały wyjściowe do przodu i do tyłu RNNs zostaną połączone. Jednym z { 'suma', 'mul', 'concat', 'ave' none}. Jeżeli żaden, wyjścia nie są łączone, zostaną zwrócone w formie listy. Domyślną wartością jest „concat”.
backward_layer Opcjonalnie keras.layers.RNN lub keras.layers.Layer instancja być używany do obsługi przetwarzania tyłu wejścia. Jeśli backward_layer nie jest, wystąpienie warstwa przekazywana jako layer argumentu będzie wykorzystywana do generowania tyłu warstwy automatycznie. Należy zauważyć, że pod warunkiem backward_layer warstwa powinna mieć właściwości odpowiadające tym z layer argumentu w szczególności powinny mieć te same wartości dla stateful , return_states , return_sequence , itd. Ponadto, w backward_layer i layer powinny mieć różne go_backwards wartości argumentu. ValueError zostanie podniesiony, jeśli warunki te nie są spełnione.

Połączeń argumenty:

Argumenty połączeń dla tej warstwy są takie same jak te z owiniętego warstwy RNN. Pamiętaj, że po przejściu initial_state argumentem podczas wywołania tej warstwy, pierwsza połowa w liście elementów w initial_state liście zostaną przekazane do przodu rozmowy RNN a ostatnim półroczu na liście elementów zostanie przekazany do zacofanej RNN połączenie.

ValueError

  1. Jeżeli layer lub backward_layer nie jest Layer instancji.
  2. W przypadku nieprawidłowej merge_mode argument.
  3. Jeśli backward_layer ma niedopasowane właściwości w porównaniu do layer .

Przykłady:

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

constraints

metody

reset_states

Pokaż źródło