Spec-Zone.ru › TensorFlow 2.9

tf.compat.v1.keras.layers.GRU

Узел обратной связи с затворами — Cho et al. 2014.

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

tf.compat.v1.keras.layers.GRU(
    units,
    activation='tanh',
    recurrent_activation='hard_sigmoid',
    use_bias=True,
    kernel_initializer='glorot_uniform',
    recurrent_initializer='orthogonal',
    bias_initializer='zeros',
    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,
    return_sequences=False,
    return_state=False,
    go_backwards=False,
    stateful=False,
    unroll=False,
    reset_after=False,
    **kwargs
)

Существует два варианта. По умолчанию используется вариант, основанный на 1406.1078v3, и затвор сброса применяется к скрытому состоянию до умножения матриц. Другой вариант основан на исходном 1406.1078v1 и имеет обратный порядок.

Второй вариант совместим с CuDNNGRU (только GPU) и позволяет выполнять вычисления на процессоре. Таким образом, он имеет отдельные смещения для kernel и recurrent_kernel. Используйте 'reset_after'=True и recurrent_activation='sigmoid'.

Аргументы
units Положительное целое число, размерность выходного пространства.
activation Функция активации для использования. По умолчанию: гиперболический тангенс (tanh). Если вы передадите None, активация не применяется (т. е. применяется линейная активация: a(x) = x).
recurrent_activation Функция активации для использования на шаге обратной связи. По умолчанию: жёсткая сигмоида (hard_sigmoid). Если вы передадите None, активация не применяется (т. е. применяется линейная активация: a(x) = x).
use_bias Булево значение, указывает, использует ли слой вектор смещений.
kernel_initializer Инициализатор матрицы весов kernel, используемой для линейного преобразования входных данных.
recurrent_initializer Инициализатор матрицы весов recurrent_kernel, используемой для линейного преобразования состояния обратной связи.
bias_initializer Инициализатор вектора смещений.
kernel_regularizer Функция регуляризации, применяемая к матрице весов kernel.
recurrent_regularizer Функция регуляризации, применяемая к матрице весов recurrent_kernel.
bias_regularizer Функция регуляризации, применяемая к вектору смещений.
activity_regularizer Функция регуляризации, применяемая к выходу слоя (его "активации").
kernel_constraint Функция ограничения, применяемая к матрице весов kernel.
recurrent_constraint Функция ограничения, применяемая к матрице весов recurrent_kernel.
bias_constraint Функция ограничения, применяемая к вектору смещений.
dropout Значение с плавающей точкой от 0 до 1. Доля единиц, которые необходимо отбросить для линейного преобразования входных данных.
recurrent_dropout Значение с плавающей точкой от 0 до 1. Доля единиц, которые необходимо отбросить для линейного преобразования состояния обратной связи.
return_sequences Булево значение. Возвращать ли последний вывод в последовательности вывода или полную последовательность.
return_state Булево значение. Возвращать ли последнее состояние дополнительно к выводу.
go_backwards Булево значение (по умолчанию False). Если True, обрабатывать последовательность входных данных в обратном порядке и возвращать обращённую последовательность.
stateful Булево значение (по умолчанию False). Если True, последнее состояние для каждого образца с индексом i в пакет будет использоваться в качестве начального состояния для образца с индексом i в следующем пакете.
unroll Булево значение (по умолчанию False). Если True, сеть будет развёрнута, иначе будет использоваться символический цикл. Развёртывание может ускорить RNN, хотя оно обычно более ресурсоёмкое. Развёртывание подходит только для коротких последовательностей.
time_major Формат формы тензоров inputs и outputs. Если True, входные и выходные данные будут иметь форму (timesteps, batch, ...), а в случае False — (batch, timesteps, ...). Использование time_major = True немного эффективнее, так как оно позволяет избежать транспонирования в начале и в конце вычислений RNN. Однако большинство данных TensorFlow используют порядок batch-major, поэтому по умолчанию эта функция принимает входные данные и выдаёт выходные данные в формате batch-major.
reset_after Конвенция GRU (применять ли затвор сброса после или до умножения матриц). False = "до" (по умолчанию), True = "после" (совместимость с cuDNN).

Аргументы вызова:

  • inputs: Тензор размерностью 3.
  • mask: Двоичный тензор формы (samples, timesteps), указывающий, должен ли быть замаскирован данный временной шаг. Отдельная запись True указывает, что соответствующий временной шаг должен быть использован, а запись False указывает, что соответствующий временной шаг должен быть пропущен.
  • training: Булево значение Python, указывающее, должен ли слой работать в режиме обучения или в режиме вывода. Этот аргумент передаётся в ячейку при её вызове. Это актуально только в том случае, если используется dropout или recurrent_dropout.
  • initial_state: Список тензоров начального состояния, которые нужно передать в первый вызов ячейки.
Атрибуты
activation
bias_constraint
bias_initializer
bias_regularizer
dropout
implementation
kernel_constraint
kernel_initializer
kernel_regularizer
recurrent_activation
recurrent_constraint
recurrent_dropout
recurrent_initializer
recurrent_regularizer
reset_after
states
units
use_bias

Методы

reset_states

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

reset_states(
    states=None
)

Сбросить записанные состояния для состояния слоя RNN.

Может быть использован только в том случае, когда слой RNN построен с stateful = True. Аргументы: состояния: массивы NumPy, содержащие значения для начального состояния, которое будет передано ячейке на первом временном шаге. Когда значение равно None, будет создан нулевой заполненный массив NumPy, базирующийся на размере состояния ячейки.

Исключения
AttributeError При несостоятельном состоянии слоя RNN.
ValueError При неизвестном размере пакета слоя RNN.
ValueError При несовместимости входного массива NumPy со состоянием слоя RNN, либо по размеру, либо по типу данных.

© 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/versions/r2.9/api_docs/python/tf/compat/v1/keras/layers/GRU

Spec-Zone.ru

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