vsplit¶
将输入 Tensor 沿着垂直轴分割成多个子 Tensor,等价于将 tensor_split API 的参数 axis 固定为 0。
参数¶
x (Tensor) - 输入变量,数据类型为 bool、bfloat16、float16、float32、float64、uint8、int8、int32、int64 的多维 Tensor,其维度必须大于 1。
num_or_indices (int|list|tuple) - 如果
num_or_indices
是一个整数n
,则x
拆分为n
部分。如果num_or_indices
是整数索引的列表或元组,则在每个索引处分割x
。name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
list[Tensor],分割后的 Tensor 列表。
代码示例¶
>>> import paddle
>>> # x is a Tensor of shape [8, 6, 7]
>>> x = paddle.rand([8, 6, 7])
>>> out0, out1 = paddle.vsplit(x, num_or_sections=2)
>>> print(out0.shape)
[4, 6, 7]
>>> print(out1.shape)
[4, 6, 7]
>>> out0, out1, out2 = paddle.vsplit(x, num_or_sections=[1, 3, 4])
>>> print(out0.shape)
[1, 6, 7]
>>> print(out1.shape)
[3, 6, 7]
>>> print(out2.shape)
[4, 6, 7]
>>> out0, out1, out2 = paddle.vsplit(x, num_or_sections=[2, 3, -1])
>>> print(out0.shape)
[2, 6, 7]
>>> print(out1.shape)
[3, 6, 7]
>>> print(out2.shape)
[3, 6, 7]