glu¶
门控线性单元。输入按照给定的维度二等分,其中第一部分被用作内容,第二部分经过一个 sigmoid 函数 之后被用作门限。输入是内容和门限的逐元素乘积。
\[\mathrm{GLU}(a, b) = a \otimes \sigma(b)\]
参数:¶
x (Tensor) - 输入的
Tensor
,数据类型为:float32、float64。axis (int, 可选) - 沿着该轴将输入二等分。D 为输入的维数,则
axis
应该在 [-D, D) 的范围内。如axis
为负数,则相当于axis +D
.name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 Name。
返回¶
Tensor
,数据类型同x
一致,在指定的轴上其尺寸减半。
代码示例¶
import paddle
from paddle.nn import functional as F
x = paddle.to_tensor(
[[-0.22014759, -1.76358426, 0.80566144, 0.04241343],
[-1.94900405, -1.89956081, 0.17134808, -1.11280477]]
)
print(F.glu(x).numpy())
# array([[-0.15216254, -0.9004892 ],
# [-1.0577879 , -0.46985325]], dtype=float32)