# Tile¶

Versioned name : Tile-1

Category : Data movement

Short description : Tile operation repeats an input tensor *”data”* the number of times given by *”repeats”* input tensor along each dimension.

• If number of elements in *”repeats”* is more than shape of *”data”*, then *”data”* will be promoted to “*repeats*” by prepending new axes, e.g. let’s shape of *”data”* is equal to (2, 3) and *”repeats”* is equal to [2, 2, 2], then shape of *”data”* will be promoted to (1, 2, 3) and result shape will be (2, 4, 6).

• If number of elements in *”repeats”* is less than shape of *”data”*, then *”repeats”* will be promoted to “*data*” by prepending 1’s to it, e.g. let’s shape of *”data”* is equal to (4, 2, 3) and *”repeats”* is equal to [2, 2], then *”repeats”* will be promoted to [1, 2, 2] and result shape will be (4, 4, 6)

Attributes :

No attributes available.

Inputs :

• 1 : “data” - an input tensor to be padded. A tensor of type T1. Required.

• 2 : “repeats” - a per-dimension replication factor. For example, repeats equal to 88 means that the output tensor gets 88 copies of data from the specified axis. A tensor of type T2. Required.

Outputs :

• 1 : The count of dimensions in result shape will be equal to the maximum from count of dimensions in “data” shape and number of elements in “repeats”. A tensor with type matching 1st tensor.

Types

• T1 : arbitrary supported type.

• T2 : any integer type.

Detailed description :

Tile operation extends input tensor and filling in output tensor by the following rules:

$out_i=input_i[inner_dim*t]$
$t \in \left ( 0, \quad tiles \right )$

Examples

Example 1: number elements in “repeats” is equal to shape of data

<layer ... type="Tile">
<input>
<port id="0">
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>3</dim>  <!-- [1, 2, 3] -->
</port>
</input>
<output>
<port id="2">
<dim>2</dim>
<dim>6</dim>
<dim>12</dim>
</port>
</output>
</layer>

Example 2: number of elements in “repeats” is more than shape of “data”

<layer ... type="Tile">
<input>
<port id="0">  <!-- will be promoted to shape (1, 2, 3, 4) -->
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>4</dim>  <!-- [5, 1, 2, 3] -->
</port>
</input>
<output>
<port id="2">
<dim>5/dim>
<dim>2</dim>
<dim>6</dim>
<dim>12</dim>
</port>
</output>
</layer>

Example 3: number of elements in “repeats” is less than shape of “data”

<layer ... type="Tile">
<input>
<port id="0">
<dim>5</dim>
<dim>2</dim>
<dim>3</dim>
<dim>4</dim>
</port>
<port id="1">
<dim>3</dim>  <!-- [1, 2, 3] will be promoted to [1, 1, 2, 3] -->
</port>
</input>
<output>
<port id="2">
<dim>5</dim>
<dim>2</dim>
<dim>6</dim>
<dim>12</dim>
</port>
</output>
</layer>