# repeat¶

Graph.repeat(input, repeats, axis=None, *, name=None)

Repeat elements of a tensor.

Parameters
• input (np.ndarray or Tensor) – The tensor whose elements you want to repeat.

• repeats (int or list[int]) – The number of times to repeat each element. If you pass a single int or singleton list, that number of repetitions is applied to each element. Otherwise, you must pass a list with the same length as input along the specified axis (or the same total length as input if you omit axis).

• axis (int, optional) – The axis along which you want to repeat elements. If you omit this value then the input is first flattened, and the repetitions applied to the flattened array.

• name (str, optional) – The name of the node.

Returns

The repeated tensor. The result has the same shape as input except along axis, where its size is either the sum of repeats (if repeats is a list with at least two elements) or the product of the original size along axis with repeats (if repeats is a single int or singleton list). If axis is None then the output is 1D, with the sizes as described above applied to the flattened input tensor.

Return type

Tensor

Examples

>>> x = np.array([1, 2, 3])
>>> y = np.array([[1, 2, 3], [4, 5, 6]])


Duplicate each entry in an array once.

>>> graph.repeat(x, 2, axis=0, name="a")
<Tensor: name="a", operation_name="repeat", shape=(6,)>
>>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["a"])
>>> result.output["a"]["value"]
array([1, 1, 2, 2, 3, 3])


Create a new array with different repetitions for each element in the original array along its second dimension.

>>> graph.repeat(x, [2, 3, 4], axis=0, name="b")
<Tensor: name="b", operation_name="repeat", shape=(9,)>
>>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["b"])
>>> result.output["b"]["value"]
array([1, 1, 2, 2, 2, 3, 3, 3, 3])


Duplicate each entry in an array along its second dimension.

>>> graph.repeat(y, 2, axis=1, name="c")
<Tensor: name="c", operation_name="repeat", shape=(2, 6)>
>>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["c"])
>>> result.output["c"]["value"]
array([[1, 1, 2, 2, 3, 3],
[4, 4, 5, 5, 6, 6]])


Create a new array with different repetitions for each element in the original array along its first dimension.

>>> graph.repeat(y, [2, 3], axis=0, name="d")
<Tensor: name="d", operation_name="repeat", shape=(5, 3)>
>>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["d"])
>>> result.output["d"]["value"]
array([[1, 2, 3],
[1, 2, 3],
[4, 5, 6],
[4, 5, 6],
[4, 5, 6]])