使用autograd函数的渐变错误python
我试图用autograd计算一些函数的梯度,但失败了,显示了下面的错误使用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
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导入;