连接 (Concatenation)

将输入张量连接成一个输出张量。

属性 (Attributes)

axis 应用连接的轴。对于秩为 n 的输入,默认值为 \(max(0, n-3)\)

输入 (Inputs)

inputs: 类型为 T 的张量。最多 10000 个张量。

输出 (Outputs)

output: 类型为 T 的张量。

数据类型 (Data Types)

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

形状信息 (Shape Information)

inputs 秩为 n 的张量。张量的形状必须匹配,排除 axis 维度。

output 秩为 n 的张量。形状与输入张量的形状匹配,排除 axis 维度,该维度是所有输入张量的 axis 维度的总和。

DLA 支持 (DLA Support)

DLA FP16 和 DLA INT8 支持仅跨 C 维度的连接。

示例 (Examples)

连接 (Concatenation)
in1 = network.add_input("input1", dtype=trt.float32, shape=(1, 1, 2, 5))
in2 = network.add_input("input2", dtype=trt.float32, shape=(1, 2, 2, 5))
in3 = network.add_input("input3", dtype=trt.float32, shape=(1, 1, 2, 5))
layer = network.add_concatenation([in1, in2, in3])
network.mark_output(layer.get_output(0))

inputs[in1.name] = np.array([[[[-3.0, -2.0, -1.0, 10.0, -25.0], [0.0, 1.0, 2.0, -2.0, -1.0]]]])
inputs[in2.name] = np.array(
    [[
        [[-3.0, -2.0, -1.0, 10.0, -25.0], [0.0, 1.0, 2.0, -2.0, -1.0]],
        [[-4.0, -4.0, -4.0, -4.0, -4.0], [-4.0, -4.0, -4.0, -4.0, -4.0]],
    ]]
)
inputs[in3.name] = np.array([[[[-3.0, -2.0, -1.0, 10.0, -25.0], [0.0, 1.0, 2.0, -2.0, -1.0]]]])

outputs[layer.get_output(0).name] = layer.get_output(0).shape
expected[layer.get_output(0).name] = np.array(
    [
        [
            [[-3.0, -2.0, -1.0, 10.0, -25.0], [0.0, 1.0, 2.0, -2.0, -1.0]],
            [[-3.0, -2.0, -1.0, 10.0, -25.0], [0.0, 1.0, 2.0, -2.0, -1.0]],
            [[-4.0, -4.0, -4.0, -4.0, -4.0], [-4.0, -4.0, -4.0, -4.0, -4.0]],
            [[-3.0, -2.0, -1.0, 10.0, -25.0], [0.0, 1.0, 2.0, -2.0, -1.0]],
        ]
    ]
)

C++ API

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

Python API

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