MVN

バージョン名: MVN-6

カテゴリー: 正規化

簡単な説明: 入力テンソルの平均分散正規化を計算します。

詳細な説明:

MVN は入力ブロブから平均値を減算します。

\[o_{i} = i_{i} - ReduceMean(i_{k}, axes)\]

normalize_variancetrue に設定されている場合、出力ブロブは分散で除算されます。値を正規化する際に、ゼロによる除算を避けるため数値 eps が分散に追加されます。eps_mode フラグの値に従って、eps は sqrt の内側または外側に追加されます。

  • eps_modeinside_sqrt の場合:

    \[o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}+\epsilon}}\]
  • eps_modeoutside_sqrt の場合:

    \[o_{i}=\frac{o_{i}}{\sqrt {\sum {o_{k}^2}}+\epsilon}\]

属性:

  • normalize_variance

    • 説明: normalize_variance は分散正規化を行うかどうかを指定するフラグです。

    • 値の範囲:

      • false - 分散を正規化しません

      • true - 分散を正規化します

    • タイプ: boolean

    • 必須: はい

  • eps

    • 説明: eps は、値を正規化するときにゼロによる除算を避けるため分散に追加される数値です。

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

    • タイプ: float

    • 必須: はい

  • eps_mode

    • 説明: イプシロンを追加する場所を選択します。

    • 値の範囲:

      • inside_sqrt - sqrt の内側にイプシロンを追加します

      • outside_sqrt - sqrt の外側にイプシロンを追加します

    • タイプ: string

    • 必須: はい

入力:

  • 1: data - 正規化されるタイプ T および任意の形状の入力テンソル。必須。

  • 2: axes - 正規化スライスを定義する data 内の次元のインデックスを指定する 1D テンソル。許容される軸の範囲は [-r; r-1] ここで、r = rank(data) の場合は順序をソートできません。負の値は、次元を後ろから数えることを意味します。タイプ T_IND必須。

出力:

  • 1: data 入力テンソルと同じ形状およびタイプの出力テンソル。

タイプ:

  • T: 任意の浮動小数点タイプ。

  • T_IND: int64 または int32

例:

<layer ... type="MVN">
    <data eps="1e-9" eps_mode="inside_sqrt" normalize_variance="true"/>
    <input>
        <port id="0">
            <dim>6</dim>
            <dim>12</dim>
            <dim>10</dim>
            <dim>24</dim>
        </port>
        <port id="1">
            <dim>3</dim> <!-- value of [0,2,3] means independent normalization per channels -->
        </port>
    </input>
    <output>
        <port id="2">
            <dim>6</dim>
            <dim>12</dim>
            <dim>10</dim>
            <dim>24</dim>
        </port>
    </output>
</layer>