比较与torch.nn.functional.gelu的功能差异
torch.nn.functional.gelu
torch.nn.functional.gelu(input) -> Tensor
更多内容详见torch.nn.functional.gelu。
mindspore.ops.gelu
mindspore.ops.gelu(input_x, approximate='none')
更多内容详见mindspore.ops.gelu。
差异对比
PyTorch:该函数表示高斯误差线性单位函数\(GELU(X)=X\times \Phi(x)\),其中\(\Phi(x)\)是高斯分布的积累分布函数。输入x表示任意数量的维度。
MindSpore:MindSpore此API实现功能与PyTorch基本一致。
分类 |
子类 |
PyTorch |
MindSpore |
差异 |
---|---|---|---|---|
参数 |
参数1 |
- |
approximate |
gelu近似算法。有两种:’none’ 和 ‘tanh’。默认值:none。经测试,approximate为 ‘none’ 后,输出结果与Pytorch相似。 |
输入 |
单输入 |
input |
input_x |
功能一致,参数名不同 |
代码示例1
两API实现功能一致,用法相同。
# PyTorch
import torch
input = torch.Tensor([[2, 4], [1, 2]])
output = torch.nn.functional.gelu(input)
print(output.detach().numpy())
# [[1.9544997 3.9998734]
# [0.8413447 1.9544997]]
# MindSpore
import mindspore
import numpy as np
x = mindspore.Tensor(np.array([[2, 4], [1, 2]]), mindspore.float32)
output = mindspore.ops.gelu(x)
print(output)
# [[1.9545997 3.99993]
# [0.841192 1.9545977]]