Spec-Zone.ru › TensorFlow 1.15

tf.compat.v2.reverse_sequence

Обращает фрагменты переменной длины.

tf.compat.v2.reverse_sequence(
    input, seq_lengths, seq_axis=None, batch_axis=None, name=None
)

Этот оператор сначала разделяет input по размеру batch_axis, и для каждого фрагмента i, обращает первые seq_lengths[i] элементы по размеру seq_axis.

Элементы seq_lengths должны подчиняться seq_lengths[i] <= input.dims[seq_dim], и seq_lengths должно быть вектором длиной input.dims[batch_dim].

Выходной фрагмент i по размеру batch_axis затем определяется входным фрагментом i, с первыми seq_lengths[i] фрагментами по размеру seq_axis обращёнными.

Например:

# Given this:
batch_dim = 0
seq_dim = 1
input.dims = (4, 8, ...)
seq_lengths = [7, 2, 3, 5]

# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0, 0:7, :, ...] = input[0, 7:0:-1, :, ...]
output[1, 0:2, :, ...] = input[1, 2:0:-1, :, ...]
output[2, 0:3, :, ...] = input[2, 3:0:-1, :, ...]
output[3, 0:5, :, ...] = input[3, 5:0:-1, :, ...]

# while entries past seq_lens are copied through:
output[0, 7:, :, ...] = input[0, 7:, :, ...]
output[1, 2:, :, ...] = input[1, 2:, :, ...]
output[2, 3:, :, ...] = input[2, 3:, :, ...]
output[3, 2:, :, ...] = input[3, 2:, :, ...]

В противоположность этому, если:

# Given this:
batch_dim = 2
seq_dim = 0
input.dims = (8, ?, 4, ...)
seq_lengths = [7, 2, 3, 5]

# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0:7, :, 0, :, ...] = input[7:0:-1, :, 0, :, ...]
output[0:2, :, 1, :, ...] = input[2:0:-1, :, 1, :, ...]
output[0:3, :, 2, :, ...] = input[3:0:-1, :, 2, :, ...]
output[0:5, :, 3, :, ...] = input[5:0:-1, :, 3, :, ...]

# while entries past seq_lens are copied through:
output[7:, :, 0, :, ...] = input[7:, :, 0, :, ...]
output[2:, :, 1, :, ...] = input[2:, :, 1, :, ...]
output[3:, :, 2, :, ...] = input[3:, :, 2, :, ...]
output[2:, :, 3, :, ...] = input[2:, :, 3, :, ...]
Аргументы
input A Tensor. Входные данные для обратного преобразования.
seq_lengths A Tensor. Должен быть одного из следующих типов: int32, int64. 1-D с длиной input.dims(batch_dim) и max(seq_lengths) <= input.dims(seq_dim)
seq_axis An int. Размерность, которая частично обращается.
batch_axis Необязательная int. По умолчанию 0. Размерность, по которой выполняется обращение.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor. Имеет тот же тип, что и input.

© 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/compat/v2/reverse_sequence

Spec-Zone.ru

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