【问题标题】:Gradient using autograd function error python梯度使用autograd函数错误python
【发布时间】:2020-03-25 13:59:15
【问题描述】:

我正在尝试使用 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 返回 a[0]*np.sin(2*np.pi*a[1]) + a[2]*np.sin(2*np.pi*a[3])

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

【问题讨论】:

    标签: python function gradient autograd


    【解决方案1】:

    我有同样的问题。我认为这是autograd的问题。您必须从 autograd 导入 numpy!开头添加:import autograd.numpy as 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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 2021-02-20
      相关资源
      最近更新 更多