ReverseSequence

反转由 sequence_lens 指定的不同长度的序列批次。

属性

batch_axis 指定哪个轴是批次轴。默认为 1。

sequence_axis 指定哪个轴是序列轴。默认为 0。

输入

input: 类型为 T 的张量。

sequence_lens: 类型为 int32int64 的张量。

输出

Y: 类型为 T 的张量。

数据类型

T: float16, float32, int32, int64, int8, bool, bfloat16

形状信息

input 是一个形状为 \([a_0,...,a_n]\) 的张量

sequence_lens 是一个形状为 \([a_{batch_axis}]\) 的张量

Y 是一个形状为 \([a_0,...,a_n]\) 的张量

示例

ReverseSequence
in1 = network.add_input("input", dtype=trt.float32, shape=(4, 4))
in2 = network.add_input("sequence_lens", dtype=trt.int32, shape=(4,))
layer = network.add_reverse_sequence(in1, in2)
network.mark_output(layer.get_output(0))

inputs[in1.name] = np.array(
    [
        [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]
    ],
    dtype=np.float32,
)
inputs[in2.name] = np.array([4, 3, 2, 1], dtype=np.int32)

outputs[layer.get_output(0).name] = layer.get_output(0).shape
expected[layer.get_output(0).name] = np.array(
    [
        [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]
    ],
    dtype=np.float32,
)

C++ API

有关 C++ IReverseSequenceLayer 算子的更多信息,请参阅 C++ IReverseSequenceLayer 文档

Python API

有关 Python IReverseSequenceLayer 算子的更多信息,请参阅 Python IReverseSequenceLayer 文档