broadcast_tensors

paddle. broadcast_tensors ( input, name=None )

根据 Broadcast 规范对一组输入 input 进行 Broadcast 操作 输入应符合 Broadcast 规范

注解

如想了解更多 Broadcasting 内容,请参见 Tensor 介绍 .

下图展示将三个 Tensor 广播到同一维度的过程。三个 Tensor 的尺寸分别为 [4, 1, 3]、[2, 3]、[4, 2, 1],在广播时,会从最后一个维度开始对齐,对于每一个维度,任意两个 Tensor 的在该维度大小相等;或者其中一个 Tensor 的维度等于 1;或者其中一个 Tensor 的维度不存在。

在下图中,

  • 最后一个维度中,Tenser3 取值为 1,Tensor1 和 Tensor2 取值为 3,所有 Tensor 的该维度被扩张为 3;

  • 倒数第二个维度中,Tenser1 取值为 1,Tensor2 和 Tensor3 取值为 2,所有 Tensor 的该维度被扩张为 2;

  • 倒数第三个维度中,Tenser2 为空,Tensor1 和 Tensor3 取值为 4,所有 Tensor 的该维度被扩张为 4。

最终,所有 Tensor 都被扩张到 [4, 2, 3]。

Broadcast 图示

参数

  • input (list(Tensor)|tuple(Tensor)) - 一组输入 Tensor,数据类型为:bool、float32、float64、complex64、complex128、int32 或 int64。所有的输入 Tensor 均需要满足 rank <= 5。

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

返回

list(Tensor),一组 Broadcast 后的 Tensor,其顺序与 input 一一对应。

代码示例

COPY-FROM: paddle.broadcast_tensors