# tf.keras.activations.gelu

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.14.0/keras/activations.py#L311-L348) |

Applies the Gaussian error linear unit (GELU) activation function.

    tf.keras.activations.gelu(
        x, approximate=False
    )

Gaussian error linear unit (GELU) computes
`x * P(X <= x)`, where `P(X) ~ N(0, 1)`.
The (GELU) nonlinearity weights inputs by their value, rather than gates
inputs by their sign as in ReLU.

#### Example:

    x = tf.constant([-3.0, -1.0, 0.0, 1.0, 3.0], dtype=tf.float32)
    y = tf.keras.activations.gelu(x)
    y.numpy()
    array([-0.00404951, -0.15865529,  0.        ,  0.8413447 ,  2.9959507 ],
        dtype=float32)
    y = tf.keras.activations.gelu(x, approximate=True)
    y.numpy()
    array([-0.00363752, -0.15880796,  0.        ,  0.841192  ,  2.9963627 ],
        dtype=float32)

<br />

<br />

<br />

| ## Args ||
|---|---|
| `x` | Input tensor. |
| `approximate` | A `bool`, whether to enable approximation. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| The gaussian error linear activation: `0.5 * x * (1 + tanh(sqrt(2 / pi) * (x + 0.044715 * x^3)))` if `approximate` is `True` or `x * P(X <= x) = 0.5 * x * (1 + erf(x / sqrt(2)))`, where `P(X) ~ N(0, 1)`, if `approximate` is `False`. ||

<br />

<br />

<br />

| ## Reference ||
|---|---|
| <br /> - [Gaussian Error Linear Units (GELUs)](https://arxiv.org/abs/1606.08415) ||

<br />