Ver fuente en GitHub

Envoltorio bidireccional para RNN.

Hereda de: Wrapper, Layer, Module

Ver alias

Alias ​​de compatibilidad para la migración

Ver Guía de migración para más detalles.

tf.compat.v1.keras.layers.Bidirectional

tf.keras.layers.Bidirectional(
    layer, merge_mode='concat', weights=None, backward_layer=None,**kwargs
)
Argumentos
layer keras.layers.RNN instancia, como keras.layers.LSTM o keras.layers.GRU. También podría ser un keras.layers.Layer instancia que cumpla con los siguientes criterios:

  1. Ser una capa de procesamiento de secuencias (acepta entradas 3D +).
  2. Tener un go_backwards, return_sequences y return_state attribute (con la misma semántica que para el RNN clase).
  3. Tienen una input_spec attribute.
  4. Implementar la serialización a través de get_config() y from_config(). Tenga en cuenta que la forma recomendada de crear nuevas capas RNN es escribir una celda RNN personalizada y usarla con keras.layers.RNN, en lugar de subclasificar keras.layers.Layer directamente.
merge_mode Modo por el cual se combinarán las salidas de los RNN hacia adelante y hacia atrás. Uno de ‘suma’, ‘mul’, ‘concat’, ‘ave’, Ninguno. Si es Ninguno, las salidas no se combinarán, se devolverán como una lista. El valor predeterminado es ‘concat’.
backward_layer Opcional keras.layers.RNN, o keras.layers.Layer instancia que se utilizará para manejar el procesamiento de entrada hacia atrás. Si backward_layer no se proporciona, la instancia de capa pasada como el layer El argumento se utilizará para generar la capa hacia atrás automáticamente. Tenga en cuenta que el proporcionado backward_layer La capa debe tener propiedades que coincidan con las del layer argumento, en particular, debe tener los mismos valores para stateful, return_states, return_sequence, etc. Además, backward_layer y layer debería tener diferente go_backwards valores de los argumentos. A ValueError se planteará si no se cumplen estos requisitos.

Argumentos de llamada:

Los argumentos de llamada para esta capa son los mismos que los de la capa RNN envuelta. Tenga en cuenta que al pasar el initial_state argumento durante la llamada de esta capa, la primera mitad en la lista de elementos en el initial_state La lista se pasará a la llamada RNN hacia adelante y la última mitad de la lista de elementos se pasará a la llamada RNN hacia atrás.

Eleva
ValueError
  1. Si layer o backward_layer no es un Layer ejemplo.
  2. En caso de invalidez merge_mode argumento.
  3. Si backward_layer tiene propiedades que no coinciden en comparación con layer.

Ejemplos:

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

Métodos

reset_states

Ver fuente

reset_states()