深度学习的梯度检验

 

使用python的lambda进行深度学习中的梯度检验,确保我们的深度学习反向传播不会出错,虽然有框架,但是这些基本的理论知识要吃透。

1、首先定义损失函数:

def loss(x):
    return np.sin(x)

手动计算可以知道该损失函数的导数是np.cos(x)

2、使用lambda创建f

f = lambda x:loss(x)

3、创建检验的函数,函数接收x和上一步定义的f

def num_check(fun,x):
    print(np.cos(x))
    print((fun(x+1e-5) - fun(x-1e-5))/2e-5)

检查两者是否相同

x = np.array([1,2,3])
num_check(f,x)

 

Logo

更多推荐