block_diag

paddle. block_diag ( inputs, name=None ) [源代码]

根据输入的张量创建块对角矩阵。

本 API 支持两种调用方式:

  1. Paddle 风格: paddle.block_diag(inputs, name=None) 使用张量序列作为输入。

  2. PyTorch 风格: paddle.block_diag(*tensors) 使用可变数量的张量参数。

参数

  • inputs (list|tuple) - 张量列表或张量元组,其子项为 0、1、2 维的 Tensor。数据类型为: bool、 float16、 float32、 float64、 uint8、 int8、 int16、 int32、 int64、 bfloat16、 complex64、 complex128。

  • name (str,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。

返回

Tensor, 与 inputs 数据类型相同。

代码示例

>>> import paddle

>>> A = paddle.to_tensor([[4], [3], [2]])
>>> B = paddle.to_tensor([7, 6, 5])
>>> C = paddle.to_tensor(1)
>>> D = paddle.to_tensor([[5, 4, 3], [2, 1, 0]])
>>> E = paddle.to_tensor([[8, 7], [7, 8]])
>>> out = paddle.block_diag([A, B, C, D, E])
>>> print(out)
Tensor(shape=[9, 10], dtype=int64, place=Place(cpu), stop_gradient=True,
[[4, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [2, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 7, 6, 5, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 5, 4, 3, 0, 0],
 [0, 0, 0, 0, 0, 2, 1, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 8, 7],
 [0, 0, 0, 0, 0, 0, 0, 0, 7, 8]])

使用本API的教程文档