如何在python numpy中计算梯度

时间:2018-11-15 12:06:30

标签: numpy scipy gradient sympy

我必须在Numpy中实施随机梯度下降。因此,我必须定义此函数E的梯度:

enter image description here

在图像中还定义了f和g。 我不知道如何执行此操作,我尝试使用Sympy和numdifftools,但是这些库给了我一些错误。 如何写函数E的梯度? 谢谢

1 个答案:

答案 0 :(得分:0)

这是你的意思吗?

import numpy as np

# G function
def g(x):
    return np.tanh(x/2)

# F function
def f(x, N, n, v, g):
    sumf = 0
    for j in range(1, N):
        sumi = 0
        for i in range(1, n):
            sumi += w[j, i]*x[i] - b[j]
        sumf += v[j]*g(sumi)

    return sumf