簡體   English   中英

梯度使用autograd函數錯誤python

[英]Gradient using autograd function error python

我正在嘗試使用 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。罪(2*np.pi*a[3])

類型錯誤:ufunc 循環不支持沒有可調用 sin 方法的 ArrayBox 類型的參數 0

我遇到過同樣的問題。 我認為這是 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM