深度学习的梯度检验
使用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)