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

Класс LSTM

Класс LSTM создает слой долгой краткосрочной памяти (Long Short-Term Memory). Такой слой применяется к последовательностям данных и способен запоминать информацию на длительных промежутках времени. Первым параметром передается число выходных нейронов units. Параметр activation задает функцию активации, recurrent_activation - функцию активации рекуррентных ворот, return_sequences определяет, возвращать ли всю последовательность или только последний выход, а return_state - возвращать ли внутренние состояния слоя.

Синтаксис

tf.keras.layers.LSTM( units, activation="tanh", recurrent_activation="sigmoid", return_sequences=False, return_state=False, **kwargs )

Пример

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

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.LSTM(3) t = tf.constant([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]]) res = layer(t) print(res)

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

tf.Tensor( [[-0.01340377 0.03718087 0.02874492]], shape=(1, 3), dtype=float32)

Пример

Давайте вернем всю последовательность, установив return_sequences в True:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.LSTM(3, return_sequences=True) t = tf.constant([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]]) res = layer(t) print(res)

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

tf.Tensor( [[[-0.01697307 0.04587055 0.03548393] [-0.01772601 0.04706296 0.03610517] [-0.01340377 0.03718087 0.02874492]]], shape=(1, 3, 3), dtype=float32)

Пример

Давайте также вернем внутренние состояния слоя, установив return_state в True:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.LSTM(3, return_state=True) t = tf.constant([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]]) res = layer(t) print(res)

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

[<tf.Tensor: shape=(1, 3), dtype=float32, numpy= array([[-0.01340377, 0.03718087, 0.02874492]], dtype=float32)>, <tf.Tensor: shape=(1, 3), dtype=float32, numpy= array([[-0.02972944, 0.08247393, 0.06376111]], dtype=float32)>, <tf.Tensor: shape=(1, 3), dtype=float32, numpy= array([[-0.05454623, 0.15008445, 0.11603062]], dtype=float32)>]

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

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