Reshape¶
バージョン名: Reshape-1
カテゴリー: 形状の操作
簡単な説明: Reshape 操作は、指定された順序に従って入力テンソルの次元を変更します。入力テンソルボリュームは出力テンソルボリュームと等しくなります。ここで、ボリュームは次元の積です。
詳細説明:
再形成 は、サイズ変更される data
と新しい出力の shape
という 2 つの入力テンソルを受け取ります。shape
内の値は、-1
、0
、および任意の正の整数です。-1
と 0
は特別な値です。
0
:special_zero
がtrue
に設定されている場合、“入力テンソルのそれぞれの次元 (左揃え) をコピーする” ことを意味します。それ以外の場合は通常の次元であり、空のテンソルに適用されます。-1
: この次元が全体の要素数を入力テンソルと同じに保つように計算されることを意味します。再形成操作では、-1
を 1 つだけ使用できます。
special_zero
が true
に設定されている場合、インデックス 0
は入力テンソルのランクより大きくすることはできません。
属性:
-
special_zero
説明: special_zero は、
shape
内のゼロ値がどのように解釈されるかを制御します。special_zero がfalse
の場合、0
はそのまま解釈されます。これは、出力形状の指定された位置にゼロ次元が含まれることを意味します。この場合、入力テンソルと出力テンソルは空です。special_zero がtrue
の場合、shape
内のすべてのゼロは、対応する次元をdata.shape
から出力シェイプ (左揃え) にコピーすることを意味します。値の範囲:
false
またはtrue
タイプ:
boolean
必須: はい
入力:
1:
data
はタイプ T の任意の形状のテンソルです。必須。2: 出力形状を記述する T_SHAPE タイプの
shape
1D テンソル。必須。
出力:
1:
data
入力テンソルと同じ内容を持ち、形状がshape
入力テンソルによって定義されたタイプ T の出力テンソル。
タイプ:
T: 任意の数値タイプ。
T_SHAPE: サポートされている整数タイプ。
例:
例 1: 空のテンソルを再形成
<layer ... type="Reshape" ...>
<data special_zero="false"/>
<input>
<port id="0">
<dim>2</dim>
<dim>5</dim>
<dim>5</dim>
<dim>0</dim>
</port>
<port id="1">
<dim>2</dim> <!--The tensor contains 2 elements: 0, 4 -->
</port>
</input>
<output>
<port id="2">
<dim>0</dim>
<dim>4</dim>
</port>
</output>
</layer>
例 2: テンソルの再形成 - 最初の次元を保持し、2 番目を計算して 3 番目の次元の値を修正
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>2</dim>
<dim>5</dim>
<dim>5</dim>
<dim>24</dim>
</port>
<port id="1">
<dim>3</dim> <!--The tensor contains 3 elements: 0, -1, 4 -->
</port>
</input>
<output>
<port id="2">
<dim>2</dim>
<dim>150</dim>
<dim>4</dim>
</port>
</output>
</layer>
例 3: テンソルの再形成 - 最初の 2 つの次元を保持し、3 番目の次元の値を修正し、4 番目の次元を計算
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>2</dim>
<dim>2</dim>
<dim>3</dim>
</port>
<port id="1">
<dim>4</dim> <!--The tensor contains 4 elements: 0, 0, 1, -1 -->
</port>
</input>
<output>
<port id="2">
<dim>2</dim>
<dim>2</dim>
<dim>1</dim>
<dim>3</dim>
</port>
</output>
</layer>
例 4: テンソルの再形成 - 最初の次元を計算し、2 番目の次元を保持
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>3</dim>
<dim>1</dim>
<dim>1</dim>
</port>
<port id="1">
<dim>2</dim> <!--The tensor contains 2 elements: -1, 0 -->
</port>
</input>
<output>
<port id="2">
<dim>3</dim>
<dim>1</dim>
</port>
</output>
</layer>
例 5: テンソルの再形成 - 最初の次元を保存し、2 番目の次元を計算
<layer ... type="Reshape" ...>
<data special_zero="true"/>
<input>
<port id="0">
<dim>3</dim>
<dim>1</dim>
<dim>1</dim>
</port>
<port id="1">
<dim>2</dim> <!--The tensor contains 2 elements: 0, -1 -->
</port>
</input>
<output>
<port id="2">
<dim>3</dim>
<dim>1</dim>
</port>
</output>
</layer>