maxframe.tensor.tile#

maxframe.tensor.tile(A, reps)[源代码]#

通过重复 A 给定次数来构造一个 tensor。

如果 reps 的长度为 d,则结果的维度将是 max(d, A.ndim)

如果 A.ndim < d,则通过在前面添加新轴将 A 提升为 d 维。例如,形状为 (3,) 的数组在 2D 复制时会变成 (1, 3),在 3D 复制时变成 (1, 1, 3)。如果这不是期望的行为,请在调用此函数之前手动将 A 提升为 d 维。

如果 A.ndim > d,则在 reps 前面添加 1 使其长度与 A.ndim 相同。例如,对于形状为 (2, 3, 4, 5) 的 Areps 为 (2, 2) 时会被视为 (1, 1, 2, 2)。

注意:虽然 tile 可用于广播,但强烈建议使用 MaxFrame 的广播操作和函数。

参数:
  • A (array_like) -- 输入 tensor。

  • reps (array_like) -- A 沿每个轴重复的次数。

返回:

c -- 平铺后的输出 tensor。

返回类型:

Tensor

参见

repeat

重复 tensor 中的元素。

broadcast_to

将 tensor 广播到新的形状

示例

>>> import maxframe.tensor as mt
>>> a = mt.array([0, 1, 2])
>>> mt.tile(a, 2).execute()
array([0, 1, 2, 0, 1, 2])
>>> mt.tile(a, (2, 2)).execute()
array([[0, 1, 2, 0, 1, 2],
       [0, 1, 2, 0, 1, 2]])
>>> mt.tile(a, (2, 1, 2)).execute()
array([[[0, 1, 2, 0, 1, 2]],
       [[0, 1, 2, 0, 1, 2]]])
>>> b = mt.array([[1, 2], [3, 4]])
>>> mt.tile(b, 2).execute()
array([[1, 2, 1, 2],
       [3, 4, 3, 4]])
>>> mt.tile(b, (2, 1)).execute()
array([[1, 2],
       [3, 4],
       [1, 2],
       [3, 4]])
>>> c = mt.array([1,2,3,4])
>>> mt.tile(c,(4,1)).execute()
array([[1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4]])