GroupNormalization¶
バージョン名: GroupNormalization-12
カテゴリー: 正規化
簡単な説明: https://arxiv.org/abs/1803.08494 で説明されている方法に従って入力テンソルの正規化を行います。
詳細な説明:
GroupNormalization 操作は、入力テンソルの次の変換を実行します。
操作はバッチごと、チャネルのグループごとに適用されます。これは、N x C x H x W
レイアウトのサンプル入力が N x G x C/G x H x W
形式に変換されることを意味します。scale
と bias
はモデルへの入力であり、チャネルごとに個別に指定します。平均 (mean
) と分散 (variance
) はグループごとに計算されます。
属性:
-
num_groups
説明: チャネル次元を分割するグループ
G
の数を指定します。値の範囲:
1
と入力テンソルのチャネル数C
の間タイプ:
int
必須: はい
-
epsilon
説明: 数値の安定を確保するため分散に追加される非常に小さな値。正規化された要素に対してゼロ除算が発生しないようにします。
値の範囲: 正の浮動小数点数
タイプ:
float
必須: はい
入力:
1:
data
- 正規化される入力テンソル。このテンソルのタイプは T です。テンソルの形状は任意ですが、最初の 2 つの次元はそれぞれbatch
とchannels
として解釈されます。必須。2:
scale
- 各チャネルのスケール値を含む T タイプの 1D テンソル。このテンソルの予想される形状は[C]
です。ここで、C
はdata
テンソルのチャネル数です。必須。3:
bias
- 各チャネルのバイアス値を含む T タイプの 1D テンソル。このテンソルの予想される形状は[C]
です。ここで、C
はdata
テンソルのチャネル数です。必須。
出力:
1:
data
入力テンソルと同じ形状およびタイプの出力テンソル。
タイプ:
T: サポートされている浮動小数点タイプ。
例:
<layer ... type="GroupNormalization">
<data epsilon="1e-5" num_groups="4"/>
<input>
<port id="0">
<dim>3</dim>
<dim>12</dim>
<dim>100</dim>
<dim>100</dim>
</port>
<port id="1">
<dim>12</dim> <!-- 12 scale values, 1 for each channel -->
</port>
<port id="2">
<dim>12</dim> <!-- 12 bias values, 1 for each channel -->
</port>
</input>
<output>
<port id="3">
<dim>3</dim>
<dim>12</dim>
<dim>100</dim>
<dim>100</dim>
</port>
</output>
</layer>