Spec-Zone.ru › TensorFlow

tf.compat.v1.nn.bidirectional_dynamic_rnn

Создает динамическую версию двунаправленной рекуррентной нейронной сети. (устарела)

tf.compat.v1.nn.bidirectional_dynamic_rnn(
    cell_fw,
    cell_bw,
    inputs,
    sequence_length=None,
    initial_state_fw=None,
    initial_state_bw=None,
    dtype=None,
    parallel_iterations=None,
    swap_memory=False,
    time_major=False,
    scope=None
)
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: используйте keras.layers.Bidirectional(keras.layers.RNN(cell)), который эквивалентен этому API

Принимает входные данные и создает независимые прямую и обратную RNN. Размер входных данных ячеек прямого и обратного направлений должен совпадать. Начальное состояние для обоих направлений по умолчанию равно нулю (но его можно задать явно), а промежуточные состояния никогда не возвращаются — сеть полностью разворачивается для заданной (переданной) длины или длин последовательности либо разворачивается полностью, если длина или длины не заданы.

Аргументы
cell_fw Экземпляр RNNCell для использования в прямом направлении.
cell_bw Экземпляр RNNCell для использования в обратном направлении.
inputs Входные данные RNN. Если time_major == False (по умолчанию), это должен быть тензор формы: [batch_size, max_time, ...] или вложенный кортеж таких элементов. Если time_major == True, это должен быть тензор формы: [max_time, batch_size, ...] или вложенный кортеж таких элементов.
sequence_length (Необязательно) Вектор int32/int64 размера [batch_size], содержащий фактическую длину каждой последовательности в пакете. Если параметр не задан, предполагается, что все элементы пакета являются последовательностями полной длины; разворот по времени выполняется от 0 до max_time для каждой последовательности.
initial_state_fw (Необязательно) Начальное состояние прямой RNN. Это должен быть тензор соответствующего типа и формы [batch_size, cell_fw.state_size]. Если cell_fw.state_size — кортеж, здесь должен быть кортеж тензоров с формами [batch_size, s] for s in cell_fw.state_size.
initial_state_bw (Необязательно) То же, что и для initial_state_fw, но с использованием соответствующих свойств cell_bw.
dtype (Необязательно) Тип данных начальных состояний и ожидаемого результата. Обязателен, если начальные состояния не заданы или состояния RNN имеют разные типы данных.
parallel_iterations (По умолчанию: 32). Количество итераций, выполняемых параллельно. Операции, не имеющие временной зависимости и допускающие параллельное выполнение, будут выполняться параллельно. Этот параметр позволяет обменивать время на память. Значения >> 1 требуют больше памяти, но уменьшают время выполнения, а меньшие значения требуют меньше памяти, но увеличивают время вычислений.
swap_memory Автоматически переносить тензоры, созданные при прямом проходе и необходимые для обратного распространения ошибки, с GPU на CPU. Это позволяет обучать RNN, которые обычно не помещаются на одном GPU, практически без снижения производительности или вовсе без него.
time_major Формат формы тензоров inputs и outputs. Если значение истинно, форма этих Tensors должна быть [max_time, batch_size, depth]. Если значение ложно, форма этих Tensors должна быть [batch_size, max_time, depth]. Использование time_major = True немного эффективнее, поскольку позволяет избежать транспонирования в начале и конце вычисления RNN. Однако большинство данных TensorFlow организовано по пакетам, поэтому по умолчанию эта функция принимает входные данные и выдает результаты в формате, в котором первым идет пакет.
scope VariableScope для создаваемого подграфа; по умолчанию — "bidirectional_rnn"
Возвращает
Кортеж (outputs, output_states), где: outputs: кортеж (output_fw, output_bw), содержащий выходные данные прямой и обратной RNN Tensor. Если time_major == False (по умолчанию), output_fw будет иметь форму Tensor: [batch_size, max_time, cell_fw.output_size], а output_bw будет иметь форму Tensor: [batch_size, max_time, cell_bw.output_size]. Если time_major == True, output_fw будет иметь форму Tensor: [max_time, batch_size, cell_fw.output_size], а output_bw будет иметь форму Tensor: [max_time, batch_size, cell_bw.output_size]. Функция возвращает кортеж, а не один объединенный Tensor, в отличие от bidirectional_rnn. Если предпочтителен объединенный результат, выходные данные прямого и обратного направлений можно объединить с помощью tf.concat(outputs, 2). output_states: кортеж (output_state_fw, output_state_bw), содержащий конечные состояния прямой и обратной RNN.
Вызывает исключения
TypeError Если cell_fw или cell_bw не является экземпляром RNNCell.

© 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/compat/v1/nn/bidirectional_dynamic_rnn

Spec-Zone.ru

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