比较与torch.nn.GELU的功能差异
torch.nn.GELU
class torch.nn.GELU()(input)
更多内容详见torch.nn.GELU。
mindspore.nn.FastGelu
class mindspore.nn.FastGelu()(input_data)
更多内容详见mindspore.nn.FastGelu。
使用方式
PyTorch:基于高斯分布的累积分布函数。
MindSpore:采用与PyTorch不同的计算公式。
代码示例
import mindspore as ms
from mindspore import nn
import torch
import numpy as np
def test_me():
input_x = ms.Tensor(np.array([[-1.0, 4.0, -8.0], [2.0, -5.0, 9.0]]), ms.float32)
fast_gelu = nn.FastGelu()
output = fast_gelu(input_x)
print(output)
def test_torch():
input_x = torch.Tensor(np.array([[-1.0, 4.0, -8.0], [2.0, -5.0, 9.0]]))
gelu = torch.nn.GELU()
output = gelu(input_x)
print(output)
if __name__ == '__main__':
test_me()
test_torch()
# Out:
# [[-1.5419e-01 3.9922e+00 -9.7474e-06]
# [ 1.9375e+00 -1.0053e-03 8.9824e+00]]
# tensor([[-1.5866e-01, 3.9999e+00, -0.0000e+00],
# [ 1.9545e+00, -1.4901e-06, 9.0000e+00]])