GELU¶
バージョン名: Gelu-7
カテゴリー: アクティベーション関数
簡単な説明: ガウス誤差線形単位の要素ごとのアクティベーション関数。
詳細説明:
Gelu の操作については、この記事で紹介されています。これは、次の数式に基づいて、指定された入力テンソルに対して要素ごとのアクティベーション関数を実行します。
\[Gelu(x) = x\cdot\Phi(x)\]
ここで、Φ(x)
はガウス分布の累積分布関数です。
Gelu 関数は、approximation_mode 属性に基づいて 2 つの異なる方法で近似できます。
erf
近似モードでは、Gelu 関数は次のように表されます。
\[Gelu(x) = x\cdot\Phi(x) = x\cdot\frac{1}{2}\cdot\left[1 + erf\frac{x}{\sqrt{2}}\right]\]
tanh
近似モードでは、Gelu 関数は次のように表されます。
\[Gelu(x) \approx x\cdot\frac{1}{2}\cdot \left(1 + \tanh\left[\sqrt{\frac{2}{\pi}} \cdot (x + 0.044715 \cdot x^3)\right]\right)\]
属性:
-
approximation_mode
説明: Gelu 関数を計算する式を指定します。
-
値の範囲:
erf
- ガウス誤差関数を使用して出力を計算しますtanh
- Tanh 近似を使用して出力を計算します
タイプ:
string
デフォルト値:
erf
必須: いいえ
入力:
1: タイプ T の任意の形状のテンソル。必須。
出力:
1: 入力テンソルに適用された要素ごとの Gelu 関数の結果。T タイプのテンソルで、入力テンソルと同じ形状です。
タイプ:
T: サポートされている任意の浮動小数点タイプ。
例:
例: tanh
近似モード
<layer ... type="Gelu">
<data approximation_mode="tanh"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>128</dim>
</port>
</output>
</layer>
例: erf
近似モード
<layer ... type="Gelu">
<data approximation_mode="erf"/>
<input>
<port id="0">
<dim>3</dim>
<dim>7</dim>
<dim>9</dim>
</port>
</input>
<output>
<port id="1">
<dim>3</dim>
<dim>7</dim>
<dim>9</dim>
</port>
</output>
</layer>