我正在尝试使用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 return a*np.sin(2*np.pi*a1) + a2*np.sin(2*np.pi*a3)
TypeError: ufunc的循环不支持没有可调用sin方法的ArrayBox类型的参数0
发布于 2020-06-03 01:44:31
我也有同样的问题。我认为这是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))https://stackoverflow.com/questions/60850393
复制相似问题