Spec-Zone.ru › TensorFlow 1.15

tf.contrib.cudnn_rnn.CudnnCompatibleGRUCell

Совместимая с CuDNN ячейка GRU.

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

tf.contrib.cudnn_rnn.CudnnCompatibleGRUCell(
    num_units, reuse=None, kernel_initializer=None
)

Реализация GRU, аналогичная tf.compat.v1.nn.rnn_cell.GRUCell, для использования вместе с tf.contrib.cudnn_rnn.CudnnGRU. Параметры последней могут быть использованы ею без проблем.

Она отличается от независимых от платформы ячеек GRU способом вычисления нового шлюза памяти. Nvidia выбрала эту разновидность на основе рекомендации автора GRU[1] и того факта, что она не влияет на точность[2]. [1] https://arxiv.org/abs/1406.1078 [2] http://svail.github.io/diff_graphs/

Совместимая с CuDNN ячейка GRU (из руководства пользователя библиотеки CuDNN):

# reset gate


<div> $$r_t = \sigma(x_t * W_r + h_t-1 * R_h + b_{Wr} + b_{Rr})$$ </div>


# update gate


<div> $$u_t = \sigma(x_t * W_u + h_t-1 * R_u + b_{Wu} + b_{Ru})$$ </div>


# new memory gate


<div> $$h'_t = tanh(x_t * W_h + r_t .* (h_t-1 * R_h + b_{Rh}) + b_{Wh})$$ </div>




<div> $$h_t = (1 - u_t) .* h'_t + u_t .* h_t-1$$ </div>


Другая ячейка GRU (см. tf.compat.v1.nn.rnn_cell.GRUCell и tf.contrib.rnn.GRUBlockCell):

# new memory gate
\\(h'_t = tanh(x_t * W_h + (r_t .* h_t-1) * R_h + b_{Wh})\\)

которая не эквивалентна ячейке CuDNN GRU: помимо дополнительного члена смещения b_Rh,

\\(r .* (h * R) != (r .* h) * R\\)
Атрибуты
graph УСТАРЕВШАЯ ФУНКЦИЯ
Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: прекратите использовать этот атрибут, так как слои tf.layers больше не отслеживают свой граф.
output_size Целое число или TensorShape: размер выходных данных, производимых этой ячейкой.
scope_name
state_size Размер(ы) состояния(ий), используемых этой ячейкой.

Он может быть представлен целым числом, TensorShape или кортежем целых чисел или TensorShapes.

Методы

get_initial_state

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

get_initial_state(
    inputs=None, batch_size=None, dtype=None
)

zero_state

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

zero_state(
    batch_size, dtype
)

Возвращает тензор(ы) состояния, заполненные нулями.

Аргументы
batch_size целое число, вещественное число или тензор единицы, представляющий размер пакета.
dtype тип данных для использования в состоянии.
Возвращаемые значения
Если state_size — целое число или TensorShape, то возвращаемое значение — тензор N-D формы [batch_size, state_size] заполненный нулями.

Если state_size — вложенный список или кортеж, то возвращаемое значение — вложенный список или кортеж (той же структуры) тензоров 2-D с формами [batch_size, s] для каждого s в state_size.

© 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/r1.15/api_docs/python/tf/contrib/cudnn_rnn/CudnnCompatibleGRUCell

Spec-Zone.ru

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