GroupNormalization#

バージョン名: GroupNormalization-12

カテゴリー: 正規化

簡単な説明: https://arxiv.org/abs/1803.08494 で説明されている方法に従って入力テンソルの正規化を行います。

詳細な説明

GroupNormalization 操作は、入力テンソルの次の変換を実行します:

y=scale(xmean)/sqrt(variance+epsilon)+bias

操作はバッチごと、チャネルのグループごとに適用されます。これは、N x C x H x W レイアウトのサンプル入力が N x G x C/G x H x W 形式に変換されることを意味します。scalebias はモデルへの入力であり、チャネルごとに個別に指定します。平均 (mean) と分散 (variance) はグループごとに計算されます。

属性

  • num_groups

    • 説明: チャネル次元を分割するグループ G の数を指定します。

    • 値の範囲: 1 と入力テンソルのチャネル数 C の間

    • タイプ: int

    • 必須: はい

  • epsilon

    • 説明: 数値の安定を確保するため分散に追加される非常に小さな値。正規化された要素に対してゼロ除算が発生しないようにします。

    • 値の範囲: 正の浮動小数点数

    • タイプ: float

    • 必須: はい

入力

  • 1: data - 正規化される入力テンソル。このテンソルのタイプは T です。テンソルの形状は任意ですが、最初の 2 つの次元はそれぞれバッチとチャネルとして解釈されます。必須。

  • 2: scale - 各チャネルのスケール値を含む T タイプの 1D テンソル。このテンソルの予想される形状は [C] です。ここで、Cdata テンソルのチャネル数です。必須。

  • 3: bias - 各チャネルのバイアス値を含む T タイプの 1D テンソル。このテンソルの予想される形状は [C] です。ここで、Cdata テンソルのチャネル数です。必須。

出力

  • 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 個のスケール値 (各チャネルに 1 つずつ) --> 
        </port> 
        <port id="2"> 
            <dim>12</dim> <!-- 12 個のバイアス値 (各チャネルに 1 つずつ)  --> 
        </port> 
    </input> 
    <output> 
        <port id="3"> 
            <dim>3</dim> 
            <dim>12</dim> 
            <dim>100</dim> 
            <dim>100</dim> 
        </port> 
    </output> 
</layer>