ReverseSequence

ReverseSequence - 10

版本

  • 名称: ReverseSequence (GitHub)

  • : main

  • since_version: 10

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已在 版本 10 中提供。

摘要

根据 sequence_lens 指定,反转具有不同长度的序列的批次。

对于在批次轴上迭代的每个切片 i,该运算符会在时间轴上反转前 sequence_lens[i] 个元素,并将索引超出 sequence_lens[i] 的元素复制到输出。因此,输出切片 i 包含前 sequence_lens[i] 个元素的反转序列,然后将其他元素的值复制过来。

示例 1:input = [[0.0, 4.0, 8.0, 12.0], [1.0, 5.0, 9.0, 13.0], [2.0, 6.0, 10.0, 14.0], [3.0, 7.0, 11.0, 15.0]] sequence_lens = [4, 3, 2, 1] time_axis = 0 batch_axis = 1

output = [[3.0, 6.0, 9.0, 12.0], [2.0, 5.0, 8.0, 13.0], [1.0, 4.0, 10.0, 14.0], [0.0, 7.0, 11.0, 15.0]]

示例 2:input = [[0.0, 1.0, 2.0, 3.0 ], [4.0, 5.0, 6.0, 7.0 ], [8.0, 9.0, 10.0, 11.0], [12.0, 13.0, 14.0, 15.0]] sequence_lens = [1, 2, 3, 4] time_axis = 1 batch_axis = 0

output = [[0.0, 1.0, 2.0, 3.0 ], [5.0, 4.0, 6.0, 7.0 ], [10.0, 9.0, 8.0, 11.0], [15.0, 14.0, 13.0, 12.0]]

属性

  • batch_axis - INT (默认值为 '1')

    (可选) 指定批次轴。必须是 1 (默认) 或 0。

  • time_axis - INT (默认值为 '0')

    (可选) 指定时间轴。必须是 0 (默认) 或 1。

输入

  • 输入 (异构) - T

    秩为 r >= 2 的张量。

  • sequence_lens (异构) - tensor(int64)

    指定批次中序列长度的张量。其形状为 [batch_size]

输出

  • Y (异构) - T

    与输入形状相同的张量。

类型约束

  • T 在 ( tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    输入和输出类型可以是任何张量类型。