Python 如何在numpy中实现此激活功能?

Python 如何在numpy中实现此激活功能?,python,python-3.x,numpy,scipy,Python,Python 3.x,Numpy,Scipy,如何使用numpy实现: 及其导数f'(x)?我试图: def func (x,y): if x.all() <= 0: y = beta (np.exp(x)-1) return y elif x>0: y = x return y 定义函数(x,y): 如果x.all()为0: y=x 返回y 然而,它们不起作用。请注意,x和y是数组。如何:

如何使用numpy实现:

及其导数
f'(x)
?我试图:

    def func (x,y):
        if x.all() <= 0:
           y = beta (np.exp(x)-1)
           return y
        elif x>0:
            y = x
            return y
定义函数(x,y): 如果x.all()为0: y=x 返回y 然而,它们不起作用。请注意,
x
y
是数组。

如何:

def func (x, beta):
    y = np.empty_like(x)
    mask = x <= 0
    y[mask] = beta * (np.exp(x[mask])-1)
    y[~mask] = x[~mask]
   return y
def func(x,beta):
y=np.空的(x)
mask=x

def func (x, beta):
    y = np.empty_like(x)
    mask = x <= 0
    y[mask] = beta * (np.exp(x[mask])-1)
    y[~mask] = x[~mask]
   return y
def func(x,beta):
y=np.空的(x)

mask=x最好使用
np.expm1
而不是
np.exp(…)-1
,它设计用于在x接近0时计算exp(x)-1而不损失精度。比较
np.exp(-1e-20)-1
np.expm1(-1e-20)
。你能举个例子吗?它不起作用。。。那么函数的导数呢?
f_deriv=lambda x:b*exp(x)如果x<0,则为1如果x>0,则为无
。差不多吧。对于任何
beta!=1
您的函数不能在0中派生。最好使用
np.expm1
而不是
np.exp(…)-1
,它设计用于在x接近0时计算exp(x)-1而不损失精度。比较
np.exp(-1e-20)-1
np.expm1(-1e-20)
。你能举个例子吗?它不起作用。。。那么函数的导数呢?
f_deriv=lambda x:b*exp(x)如果x<0,则为1如果x>0,则为无
。差不多吧。对于任何
beta!=1
您的函数不能在0中派生。