import matplotlib.pyplot as plt import numpy as np def sigmod(x): return 1.0/(1+np.exp(-x)) def gelu(x): # gelu 为高斯误差线性单元,gelu(x) = xΦ(x),Φ(x) 正态分布的累积分布函数Φ(x)没有解析表达式,它的值可以通过数值积分、泰勒级数、或者渐近序列近似得到。 # return 0.5*x*(1+ np.tanh(np.sqrt(2/np.pi)*(x+0.044715*np.power(x,3)))) return x*sigmod(1.702*x) x = np.linspace(-5,5,50) y = gelu(x) plt.plot(x,y) plt.show()