diagonal_scatter

paddle. diagonal_scatter ( x, y, offset=0, axis1=0, axis2=1, name=None ) [源代码]

根据参数 offsetaxis1axis2,将张量 y 填充到张量 x 的对应位置。

这个函数将会返回一个新的 Tensor

参数 offset 确定从指定的二维平面中获取对角线的位置:

  • 如果 offset = 0,则嵌入主对角线。

  • 如果 offset > 0,则嵌入主对角线右上的对角线。

  • 如果 offset < 0,则嵌入主对角线左下的对角线。

参数

  • x (Tensor) - 输入张量,张量的维度至少为 2 维,支持 float16、float32、float64、bfloat16、uint8、int8、int16、int32、int64、bool、complex64、complex128 数据类型。

  • y (Tensor) - 嵌入张量,将会被嵌入到输入张量中,支持 float16、float32、float64、bfloat16、uint8、int8、int16、int32、int64、bool、complex64、complex128 数据类型。

  • offset (int, 可选) - 从指定的二维平面嵌入对角线的位置,默认值为 0,即主对角线。

  • axis1 (int, 可选) - 对角线的第一个维度,默认值为 0。

  • axis2 (int, 可选) - 对角线的第二个维度,默认值为 1。

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

返回

Tensor,返回一个根据给定的轴 axis 和偏移量 offset,将张量 y 填充到张量 x 对应位置的新 Tensor

代码示例

>>> import paddle
>>> x = paddle.arange(6.0).reshape((2, 3))
>>> y = paddle.ones((2,))
>>> out = x.diagonal_scatter(y)
>>> print(out)
Tensor(shape=[2, 3], dtype=float32, place=Place(gpu:0), stop_gradient=True,
       [[1., 1., 2.],
        [3., 1., 5.]])