Spec-Zone.ru › TensorFlow

tf.keras.layers.LSTM

Слой с долгой краткосрочной памятью — Hochreiter 1997.

Наследуется от: RNN, Layer, Operation

tf.keras.layers.LSTM(
    units,
    activation='tanh',
    recurrent_activation='sigmoid',
    use_bias=True,
    kernel_initializer='glorot_uniform',
    recurrent_initializer='orthogonal',
    bias_initializer='zeros',
    unit_forget_bias=True,
    kernel_regularizer=None,
    recurrent_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    recurrent_constraint=None,
    bias_constraint=None,
    dropout=0.0,
    recurrent_dropout=0.0,
    seed=None,
    return_sequences=False,
    return_state=False,
    go_backwards=False,
    stateful=False,
    unroll=False,
    use_cudnn='auto',
    **kwargs
)

Используется в блокнотах

Используется в руководстве Используется в учебных пособиях
  • Разреженные тензоры
  • Прогнозирование временных рядов
  • Генерация музыки с помощью RNN
  • Классификация текста с помощью RNN
  • Загрузка метрик с сервера Prometheus
  • Регуляризация графов для классификации мнений с использованием синтезированных графов

В зависимости от доступного оборудования и ограничений во время выполнения, этот слой выберет различные реализации (на основе cuDNN или собственной реализации бэкенда), чтобы максимизировать производительность. Если доступна видеокарта GPU и все аргументы слоя удовлетворяют требованиям ядра cuDNN (подробности см. ниже), слой будет использовать быструю реализацию cuDNN при использовании бэкенда TensorFlow. Требования для использования реализации cuDNN:

  1. activation == tanh
  2. recurrent_activation == sigmoid
  3. dropout == 0 и recurrent_dropout == 0
  4. unroll является False
  5. use_bias является True
  6. Входы, если используется маскировка, строго заполняются справа.
  7. Внешний контекст включает выполнение в режиме Eager.

Например:

inputs = np.random.random((32, 10, 8))
lstm = keras.layers.LSTM(4)
output = lstm(inputs)
output.shape
(32, 4)
lstm = keras.layers.LSTM(
    4, return_sequences=True, return_state=True)
whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)
whole_seq_output.shape
(32, 10, 4)
final_memory_state.shape
(32, 4)
final_carry_state.shape
(32, 4)
Аргументы
units Положительное целое число, размерность выходного пространства.
activation Функция активации для использования. По умолчанию: гиперболический тангенс (tanh). Если вы передадите None, активация не применяется (т.е. линейная активация: a(x) = x).
recurrent_activation Функция активации для использования на шаге рекурсии. По умолчанию: сигмоида (sigmoid). Если вы передадите None, активация не применяется (т.е. линейная активация: a(x) = x).
use_bias Булево значение (по умолчанию True), использовать ли вектор смещения.
kernel_initializer Инициализатор матрицы весов kernel, используемой для линейного преобразования входов. По умолчанию: "glorot_uniform".
recurrent_initializer Инициализатор матрицы весов recurrent_kernel, используемой для линейного преобразования рекуррентного состояния. По умолчанию: "orthogonal".
bias_initializer Инициализатор вектора смещения. По умолчанию: "zeros".
unit_forget_bias Булево значение (по умолчанию True). Если True, при инициализации добавляется 1 к смещению ворот забывания. Установка в True также принудительно установит bias_initializer="zeros". Это рекомендуется в Jozefowicz et al.
kernel_regularizer Функция регуляризации, применяемая к матрице весов kernel. По умолчанию: None.
recurrent_regularizer Функция регуляризации, применяемая к матрице весов recurrent_kernel. По умолчанию: None.
bias_regularizer Функция регуляризации, применяемая к вектору смещения. По умолчанию: None.
activity_regularizer Функция регуляризации, применяемая к выходу слоя (его «активации»). По умолчанию: None.
kernel_constraint Функция ограничения, применяемая к матрице весов kernel. По умолчанию: None.
recurrent_constraint Функция ограничения, применяемая к матрице весов recurrent_kernel. По умолчанию: None.
bias_constraint Функция ограничения, применяемая к вектору смещения. По умолчанию: None.
dropout Вещественное число от 0 до 1. Доля единиц для отбрасывания при линейном преобразовании входов. По умолчанию: 0.
recurrent_dropout Вещественное число от 0 до 1. Доля единиц для отбрасывания при линейном преобразовании рекуррентного состояния. По умолчанию: 0.
seed Случайное зерно для отбрасывания.
return_sequences Булево значение. Возвращать ли последний выход в выходной последовательности или всю последовательность. По умолчанию: False.
return_state Булево значение. Возвращать ли последнее состояние помимо выхода. По умолчанию: False.
go_backwards Булево значение (по умолчанию: False). Если True, обрабатывать входную последовательность в обратном порядке и возвращать обращенную последовательность.
stateful Булево значение (по умолчанию: False). Если True, последнее состояние для каждой выборки с индексом i в пакете будет использоваться в качестве начального состояния для выборки с индексом i в последующем пакете.
unroll Булево значение (по умолчанию False). Если True, сеть будет развернута, в противном случае будет использоваться символический цикл. Развертывание может ускорить RNN, хотя оно, как правило, более ресурсоемкое. Развертывание подходит только для коротких последовательностей.
use_cudnn Использовать ли реализацию с поддержкой cuDNN. "auto" попытается использовать cuDNN, если это возможно, и вернется к стандартной реализации в противном случае.
Аргументы вызова
inputs 3D тензор, с формой (batch, timesteps, feature).
mask Бинарный тензор формы (samples, timesteps), указывающий, следует ли маскировать определенный временной шаг (необязательно). Отдельный элемент True указывает, что соответствующий временной шаг должен быть использован, а элемент False указывает, что соответствующий временной шаг должен быть пропущен. По умолчанию None.
training Булево значение Python, указывающее, должен ли слой вести себя в режиме обучения или в режиме вывода. Этот аргумент передается ячейке при вызове. Это актуально только если используется dropout или recurrent_dropout (необязательно). По умолчанию None.
initial_state Список начальных тензоров состояния, которые будут переданы на первый вызов ячейки (необязательно, None вызывает создание заполненных нулями начальных тензоров состояния). По умолчанию None.
Атрибуты
activation
bias_constraint
bias_initializer
bias_regularizer
dropout
input Извлекает тензор(ы) входных данных символической операции.

Возвращает только тензор(ы), соответствующий первому вызову операции.

kernel_constraint
kernel_initializer
kernel_regularizer
output Извлекает тензор(ы) выходных данных слоя.

Возвращает только тензор(ы), соответствующий первому вызову операции.

recurrent_activation
recurrent_constraint
recurrent_dropout
recurrent_initializer
recurrent_regularizer
unit_forget_bias
units
use_bias

Методы

from_config

Просмотреть исходный код

@classmethod
from_config(
    config
)

Создает слой из его конфигурации.

Этот метод является обратным get_config, способным создать тот же слой из словаря конфигурации. Он не обрабатывает соединение слоев (обрабатывается сетью), а также веса (обрабатываются set_weights).

Аргументы
config Словарь Python, обычно выход get_config.
END_OF_DOCUMENT_MARKER ```
Возвращаемое значение
Экземпляр слоя.

get_initial_state

Просмотреть исходный код

get_initial_state(
    batch_size
)

inner_loop

Просмотреть исходный код

inner_loop(
    sequences, initial_state, mask, training=False
)

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/LSTM

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API