tf.keras.layers.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