РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
217 of 824 menu

Класс Bidirectional

Класс Bidirectional применяется к рекуррентным слоям для создания двунаправленной сети. Первым параметром передается экземпляр рекуррентного слоя, например LSTM, GRU или SimpleRNN. Вторым параметром можно указать режим объединения результатов merge_mode, который определяет, как складываются выходы прямого и обратного проходов. Третьим параметром передается имя слоя name. По умолчанию используется режим 'concat', который объединяет выходы по последней оси.

Синтаксис

tf.keras.layers.Bidirectional(layer, [merge_mode], [name])

Пример

Давайте создадим двунаправленный слой на основе SimpleRNN и применим его к входной последовательности:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(5, 3)), tf.keras.layers.Bidirectional(tf.keras.layers.SimpleRNN(4)) ]) t = tf.constant([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]], dtype=tf.float32) res = model(t) print(res.shape)

Результат выполнения кода:

(1, 8)

Пример

Давайте создадим двунаправленный слой с режимом объединения 'sum':

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(5, 3)), tf.keras.layers.Bidirectional(tf.keras.layers.SimpleRNN(4), merge_mode='sum') ]) t = tf.constant([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]], dtype=tf.float32) res = model(t) print(res.shape)

Результат выполнения кода:

(1, 4)

Пример

Давайте создадим двунаправленный слой с режимом объединения 'ave':

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(5, 3)), tf.keras.layers.Bidirectional(tf.keras.layers.SimpleRNN(4), merge_mode='ave') ]) t = tf.constant([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]], dtype=tf.float32) res = model(t) print(res.shape)

Результат выполнения кода:

(1, 4)

Смотрите также

  • слой LSTM,
    который представляет собой долгую краткосрочную память
  • слой GRU,
    который представляет собой управляемый рекуррентный блок
  • слой SimpleRNN,
    который представляет собой простую рекуррентную сеть
  • слой TimeDistributed,
    который применяет слой к каждому временному шагу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить