Contenido principal

geluLayer

Capa de unidad lineal de error gaussiano (GELU)

Desde R2022b

    Descripción

    Una capa de unidad lineal de error gaussiano (GELU) pondera la entrada según su probabilidad en una distribución gaussiana.

    Esta operación viene dada por

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

    donde erf denota la función de error.

    Creación

    Descripción

    layer = geluLayer devuelve una capa GELU.

    ejemplo

    layer = geluLayer(Name=Value) establece las propiedades opcionales Approximation y Name usando argumentos nombre-valor. Por ejemplo, geluLayer(Name="gelu") crea una capa GELU con el nombre "gelu".

    Propiedades

    expandir todo

    GELU

    Método de aproximación para operaciones GELU, especificado como uno de estos valores:

    • 'none': no usa aproximación.

    • 'tanh': aproxima la función de error subyacente utilizando

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

    Sugerencia

    En MATLAB®, calcular la aproximación de tanh es, por lo general, menos preciso y, en tamaños de entrada grandes, más lento que calcular la activación GELU sin usar una aproximación. Utilice la aproximación de tanh cuando desee reproducir modelos que usan esta aproximación, como BERT y GPT-2.

    Capa

    Nombre de la capa, especificado como un vector de caracteres o un escalar de cadena. Para entradas de arreglos Layer, las funciones trainnet y dlnetwork asignan automáticamente nombres a las capas sin nombre.

    El objeto GELULayer almacena esta propiedad como un vector de caracteres.

    Tipos de datos: char | string

    Esta propiedad o parámetro es de solo lectura.

    Número de entradas a la capa, almacenado como 1. Esta capa solo admite una entrada.

    Tipos de datos: double

    Esta propiedad o parámetro es de solo lectura.

    Nombres de entrada, almacenados como {'in'}. Esta capa solo admite una entrada.

    Tipos de datos: cell

    Esta propiedad o parámetro es de solo lectura.

    Número de salidas de la capa, almacenado como 1. Esta capa solo tiene una salida.

    Tipos de datos: double

    Esta propiedad o parámetro es de solo lectura.

    Nombres de salida, almacenados como {'out'}. Esta capa solo tiene una salida.

    Tipos de datos: cell

    Ejemplos

    contraer todo

    Cree una capa GELU.

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

    Incluya una capa GELU en un arreglo Layer.

    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
    

    Algoritmos

    expandir todo

    Referencias

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

    Capacidades ampliadas

    expandir todo

    Generación de código C/C++
    Genere código C y C++ mediante MATLAB® Coder™.

    Generación de código de GPU
    Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

    Historial de versiones

    Introducido en R2022b

    expandir todo