Tile

バージョン名: Tile-1

カテゴリー: データ移動

簡単な説明: Tile 操作は、入力テンソル “data” を、各次元に沿って “repeats” 入力テンソルで指定された回数繰り返します。

  • “repeats” の要素の数が “data” の形状よりも多い場合、“data” は、新しい軸を先頭に追加することによって “repeats” に昇格されます。“data” の形状が (2, 3) に等しく、“repeats” が [2, 2, 2] に等しい場合、“data” の形状は (1, 2, 3) にプロモートされ、結果の形状は (2, 4, 6) になります。

  • “repeats” の要素の数が “data” の形状よりも少ない場合、“repeats” は先頭に 1 を付加することによって “data” に昇格されます。“data” の形状が (4, 2, 3) に等しく、“repeats” が [2, 2] に等しい場合、“repeats” は [1, 2, 2] に昇格され、結果の形状は (4、4、6) になります。

属性:

利用可能な属性はありません。

入力:

  • 1: “data” - パディングされる入力テンソル。T1 タイプのテンソル。必須。

  • 2: “repeats” - 次元ごとの複製係数。例えば、repeats が 88 に等しい場合は、出力テンソルが指定された軸からデータの 88 コピーを取得することを意味します。T2 タイプのテンソル。必須。

出力:

  • 1: 結果の形状の次元数は、“data” 形状の次元数と “repeats” の要素数の最大値と等しくなります。1 番目のテンソルとタイプが一致するテンソル。

タイプ:

  • T1: サポートされている任意のタイプ。

  • T2: 任意の整数タイプ。

詳細説明:

Tile 操作は、次のルールに従って入力テンソルを拡張し、出力テンソルを埋めます。

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

例:

例 1: “repeats” の要素数がデータの形状と等しい場合

 <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>

例 2: “repeats” の要素数がデータの形状より多い場合

 <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>

例 3: “repeats” の要素数がデータの形状より少ない場合

 <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>