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 (подробности см. ниже), при использовании бэкенда TensorFlow слой применяет быструю реализацию cuDNN. Для использования реализации cuDNN необходимо соблюдать следующие требования:

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

Например:

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 Трехмерный тензор формы (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 и позволяет создать такой же слой из словаря конфигурации. Он не обрабатывает связи слоев (это делает Network) и веса (это делает set_weights).

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

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