Spec-Zone.ru › TensorFlow 2.3

tf.compat.v1.keras.layers.GRU

Гейт-рекуррентный блок (GRU) — Cho et al. 2014.

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

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, implementation=1, return_sequences=False,
    return_state=False, go_backwards=False, stateful=False, unroll=False,
    reset_after=False, **kwargs
)

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

Вторая разновидность совместима с CuDNNGRU (только для GPU) и позволяет выполнять вывод на CPU. Поэтому у неё отдельные смещения для 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. Доля единиц, которые нужно отбросить для линейного преобразования рекуррентного состояния.
implementation Режим реализации, либо 1, либо 2. Режим 1 структурирует операции как большее количество меньших умножений точечных произведений и сложений, а режим 2 объединяет их в меньшее количество больших операций. Эти режимы будут иметь разные профили производительности на различных аппаратных платформах и для различных приложений.
return_sequences Булево значение. Возвращать ли только последний выходной результат в последовательности или всю последовательность.
return_state Булево значение. Возвращать ли последнее состояние дополнительно к выходу.
go_backwards Булево значение (по умолчанию False). Если True, обрабатывать последовательность входных данных в обратном порядке и вернуть обратную последовательность.
stateful Булево значение (по умолчанию False). Если True, последнее состояние для каждого образца с индексом i в пакете будет использоваться в качестве начального состояния для образца с индексом i в следующем пакете.
unroll Булево значение (по умолчанию False). Если True, сеть будет развернута, в противном случае будет использоваться символический цикл. Развёртывание может ускорить RNN, хотя оно, как правило, более ресурсоёмкое. Развёртывание подходит только для коротких последовательностей.
time_major Формат формы тензоров inputs и outputs. Если True, входные и выходные данные будут иметь форму (timesteps, batch, ...), в противном случае — (batch, timesteps, ...). Использование time_major = True немного эффективнее, так как оно позволяет избежать транспонирования в начале и конце вычислений RNN. Однако большинство данных TensorFlow имеют форму «пакет-сначала», поэтому по умолчанию эта функция принимает входные данные и выдаёт выходные данные в формате «пакет-сначала».
reset_after Конвенция GRU (применять ли гейт сброса после или перед матричным умножением). False = "до" (по умолчанию), True = "после" (совместимо с CuDNN).

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

  • inputs: Тензор размерностью 3.
  • mask: Бинарный тензор размера (samples, timesteps) , указывающий, нужно ли маскировать данный временной шаг.
  • 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. Аргументы: states: Массивы NumPy, содержащие значение начального состояния, которое будет передано в ячейку на первом временном шаге. Если значение равно None, будет создан нулевой массив NumPy на основе размера состояния ячейки.

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

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/compat/v1/keras/layers/GRU

Spec-Zone.ru

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