使用autograd函数的渐变错误python

使用autograd函数的渐变错误python,python,function,gradient,autograd,Python,Function,Gradient,Autograd,我试图用autograd计算一些函数的梯度,但失败了,显示了下面的错误 from autograd import grad def f(a): return a[0]*np.sin(2*np.pi*a[1]) + a[2]*np.sin(2*np.pi*a[3]) a=[1.0,1.0,1.0,1.0] gr = grad(f,0) print(gr(a)) 文件“C:\Users\user\Desktop\auto.py”,第23行,在f中 返回一个[0]*np.sin(2*n

我试图用autograd计算一些函数的梯度,但失败了,显示了下面的错误

from autograd import grad
def f(a): 
   return a[0]*np.sin(2*np.pi*a[1]) + a[2]*np.sin(2*np.pi*a[3])

a=[1.0,1.0,1.0,1.0] 
gr = grad(f,0)
print(gr(a))

文件“C:\Users\user\Desktop\auto.py”,第23行,在f中 返回一个[0]*np.sin(2*np.pi*a[1])+a[2]*np.sin(2*np.pi*a[3])


TypeError:ufunc的循环不支持ArrayBox类型的参数0,该参数没有可调用的sin方法

我也有同样的问题。我认为这是autograd的问题。你必须从autograd导入numpy!在开头添加:将autograd.numpy作为np导入

from autograd import grad
import autograd.numpy as np ; <-----------

def f(a): 
   return a[0]*np.sin(2*np.pi*a[1]) + a[2]*np.sin(2*np.pi*a[3])

a=[1.0,1.0,1.0,1.0] 
gr = grad(f,0)
print(gr(a))
从自动加载导入梯度

将autograd.numpy作为np导入 我也有同样的问题。我认为这是autograd的问题。你必须从autograd导入numpy!在开头添加:将autograd.numpy作为np导入

from autograd import grad
import autograd.numpy as np ; <-----------

def f(a): 
   return a[0]*np.sin(2*np.pi*a[1]) + a[2]*np.sin(2*np.pi*a[3])

a=[1.0,1.0,1.0,1.0] 
gr = grad(f,0)
print(gr(a))
从自动加载导入梯度
将autograd.numpy作为np导入;