Python 当使用RELU或泄漏RELU时,神经网络不收敛

Python 当使用RELU或泄漏RELU时,神经网络不收敛,python,machine-learning,neural-network,relu,Python,Machine Learning,Neural Network,Relu,我已经编写了一个简单的神经网络库,它可以创建一个任意大小的神经网络,并可以用给定的激活函数及其导数来训练网络。 该网络在使用sigmoid作为激活函数时表现良好,但从不与relu或泄漏relu收敛。 我使用二维网格上分离两组点的问题作为标准问题,以轻松检测网络是否收敛。 这是使用sigmoid解决问题的结果:: (x>0和y>0)或(x请不要将Python代码格式化为Javascript片段(已编辑)。嗨,你的num数组的条目有什么类型?顺便说一句,我认为你可以减少派生函数,使它们只使用一个wh

我已经编写了一个简单的神经网络库,它可以创建一个任意大小的神经网络,并可以用给定的激活函数及其导数来训练网络。 该网络在使用sigmoid作为激活函数时表现良好,但从不与relu或泄漏relu收敛。 我使用二维网格上分离两组点的问题作为标准问题,以轻松检测网络是否收敛。 这是使用sigmoid解决问题的结果::
(x>0和y>0)或(x请不要将Python代码格式化为Javascript片段(已编辑)。嗨,你的
num
数组的条目有什么类型?顺便说一句,我认为你可以减少派生函数,使它们只使用一个
where
。我会将LeakyRelu的派生函数更改为:
num=np.where(numI已尝试在普通代码段中添加代码,但我的浏览器出现问题。很抱歉,Thanx for tipp jottbe:)请不要将Python代码格式化为Javascript代码段(已编辑).嗨,你的
num
数组的条目是什么类型的?顺便说一句,我认为你可以减少导数函数,使它们只使用一个
where
。我会将LeakyRelu的导数函数改为:
num=np.where(numI试图在普通代码段中添加代码,但我的浏览器出现问题。对此表示抱歉,Thanx for tipp jottbe:)
## RelU
def Relu(num):
    return np.where(num>0,num,0)


## Relu derivative
def Relu_deriv(num):
    num=np.where(num>0,num,0)
    num=np.where(num==0,num,1)

    return num
## leaky RelU
def L_Relu(num):
    return np.where(num>0,num,0.01*num)

## leaky RelU deriv
def L_Relu_D(num):
    num=np.where(num<=0,num,1)
    num=np.where(num>=0,num,0.01)

    return num