mars.tensor.tile#

mars.tensor.tile(A, reps)[来源]#

通过重复 A 的次数来构造一个张量,该次数由 reps 给出。

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

如果 A.ndim < dA 将通过在前面添加新的轴被提升为d维。因此,形状为(3,)的数组会被提升为(1, 3)以进行二维复制,或者形状为(1, 1, 3)以进行三维复制。如果这不是所需的行为,请在调用此函数之前手动将A提升到d维。

如果 A.ndim > d, reps 会通过在它前面加上1来提升到 A.ndim。 因此,对于形状为 (2, 3, 4, 5) 的 Areps 为 (2, 2) 被视为 (1, 1, 2, 2)。

注意:虽然可以使用tile进行广播,但强烈建议使用Mars的广播操作和功能。

Parameters
  • A (array_like) – 输入张量。

  • reps (array_like) – A 在每个轴上的重复次数。

Returns

c – 瓦片输出张量。

Return type

张量

另请参阅

repeat

重复张量的元素。

broadcast_to

广播一个张量到新的形状

示例

>>> import mars.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]])