メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

geluLayer

ガウス誤差線形単位 (GELU) 層

R2022b 以降

    説明

    ガウス誤差線形単位 (GELU) 層は、ガウス確率分布に従って入力を重み付けします。

    この演算は次で与えられます。

    GELU(x)=x2(1+erf(x2)),

    ここで、erf は誤差関数を表します。

    作成

    説明

    layer = geluLayer は GELU 層を返します。

    layer = geluLayer(Name=Value) は、名前と値の引数を使用して、オプションの Approximation プロパティおよび Name プロパティを設定します。たとえば、geluLayer(Name="gelu") は、"gelu" という名前の GELU 層を作成します。

    プロパティ

    すべて展開する

    GELU

    GELU 演算の近似法。次のいずれかの値として指定します。

    • 'none' — 近似を使用しません。

    • 'tanh' — 次を使用して基になる誤差関数を近似します。

      erf(x2)tanh(2π(x+0.044715x3)).

    ヒント

    MATLAB® では、tanh 近似の計算は通常、精度が低くなります。また、入力サイズが大きい場合、近似を使用せずに GELU 活性化を計算するよりも遅くなります。tanh 近似は、BERT や GPT-2 など、この近似を使用するモデルを再現する場合に使用します。

    層の名前。文字ベクトルまたは string スカラーとして指定します。Layer 配列入力の場合、trainnet 関数および dlnetwork 関数は、名前のない層に自動的に名前を割り当てます。

    GELULayer オブジェクトは、このプロパティを文字ベクトルとして格納します。

    データ型: char | string

    この プロパティ は読み取り専用です。

    層への入力の数。1 として格納されます。この層は単一の入力のみを受け入れます。

    データ型: double

    この プロパティ は読み取り専用です。

    入力名。{'in'} として格納されます。この層は単一の入力のみを受け入れます。

    データ型: cell

    この プロパティ は読み取り専用です。

    層からの出力の数。1 として格納されます。この層には単一の出力のみがあります。

    データ型: double

    この プロパティ は読み取り専用です。

    出力名。{'out'} として格納されます。この層には単一の出力のみがあります。

    データ型: cell

    すべて折りたたむ

    GELU 層を作成します。

    layer = geluLayer
    layer = 
      GELULayer with properties:
    
                 Name: ''
    
       Hyperparameters
        Approximation: 'none'
    
    

    Layer 配列に GELU 層を含めます。

    layers = [
        imageInputLayer([28 28 1])
        convolution2dLayer(5,20)
        geluLayer
        maxPooling2dLayer(2,Stride=2)
        fullyConnectedLayer(10)
        softmaxLayer]
    layers = 
      6×1 Layer array with layers:
    
         1   ''   Image Input       28×28×1 images with 'zerocenter' normalization
         2   ''   2-D Convolution   20 5×5 convolutions with stride [1  1] and padding [0  0  0  0]
         3   ''   GELU              GELU
         4   ''   2-D Max Pooling   2×2 max pooling with stride [2  2] and padding [0  0  0  0]
         5   ''   Fully Connected   10 fully connected layer
         6   ''   Softmax           softmax
    

    アルゴリズム

    すべて展開する

    参照

    [1] Hendrycks, Dan, and Kevin Gimpel. "Gaussian error linear units (GELUs)." Preprint, submitted June 27, 2016. https://arxiv.org/abs/1606.08415

    拡張機能

    すべて展開する

    C/C++ コード生成
    MATLAB® Coder™ を使用して C および C++ コードを生成します。

    GPU コード生成
    GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

    バージョン履歴

    R2022b で導入

    すべて展開する