tf.keras.layers.Bidirectional
Обёртка Bidirectional для RNN.
Наследуется от: Layer, Operation
tf.keras.layers.Bidirectional(
layer,
merge_mode='concat',
weights=None,
backward_layer=None,
**kwargs
)
Используется в блокнотах
| Используется в учебниках |
|---|
| Аргументы | |
|---|---|
layer | Экземпляр keras.layers.RNN, например, keras.layers.LSTM или keras.layers.GRU. Также может быть экземпляром keras.layers.Layer, который удовлетворяет следующим критериям:
|
merge_mode | Способ объединения выходов прямого и обратного RNN. Один из {"sum", "mul", "concat", "ave", None}. Если None, выходы не будут объединены, а будут возвращены в виде списка. По умолчанию "concat". |
backward_layer | Необязательный экземпляр keras.layers.RNN или keras.layers.Layer для обработки обратного ввода. Если backward_layer не предоставлен, экземпляр слоя, переданный в качестве аргумента layer, будет автоматически использован для генерации обратного слоя. Обратите внимание, что предоставленный слой backward_layer должен иметь свойства, соответствующие аргументу layer, в частности, он должен иметь одинаковые значения для stateful, return_states, return_sequences и т. д. Кроме того, backward_layer и layer должны иметь разные значения аргумента go_backwards. Будет вызвано исключение ValueError, если эти требования не будут выполнены. |
| Аргументы вызова | |
|---|---|
Аргументы вызова для данного слоя такие же, как и для слоя обернутого RNN. Обратите внимание, что при передаче аргумента initial_state во время вызова данного слоя, первая половина элементов в списке initial_state будет передана в вызов прямого RNN, а последняя половина элементов в списке будет передана в вызов обратного RNN. |
Примечание:создание слояBidirectionalиз существующего экземпляра слоя RNN не позволит повторно использовать состояние весов экземпляра слоя RNN — слойBidirectionalбудет иметь только что инициализированные веса.
Примеры:
model = Sequential([
Input(shape=(5, 10)),
Bidirectional(LSTM(10, return_sequences=True),
Bidirectional(LSTM(10)),
Dense(5, activation="softmax"),
])
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
# With custom backward layer
forward_layer = LSTM(10, return_sequences=True)
backward_layer = LSTM(10, activation='relu', return_sequences=True,
go_backwards=True)
model = Sequential([
Input(shape=(5, 10)),
Bidirectional(forward_layer, backward_layer=backward_layer),
Dense(5, activation="softmax"),
])
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
| Атрибуты | |
|---|---|
input | Получает тензор(ы) ввода символьной операции. Возвращает только тензор(ы), соответствующий *первому* вызову операции. |
output | Получает тензор(ы) вывода слоя. Возвращает только тензор(ы), соответствующий *первому* вызову операции. |
states | |
Методы
from_config
@classmethod
from_config(
config, custom_objects=None
)
Создаёт слой из его конфигурации.
Этот метод — обратный к методу get_config, позволяющий создать тот же слой из словаря конфигурации. Он не обрабатывает соединение слоёв (обрабатывается Network), а также веса (обрабатывается set_weights).
| Аргументы | |
|---|---|
config | Словарь Python, обычно вывод метода get_config. |
| Возвращаемое значение | |
|---|---|
| Экземпляр слоя. |
reset_state
reset_state()
reset_states
reset_states()
symbolic_call
symbolic_call(
*args, **kwargs
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/layers/Bidirectional