由于我对成本函数w.r.t的梯度感兴趣,所以我正在尝试实现一个实值成本函数,它用py手电筒和自动梯度来评估频率空间中的复杂输入。输入。当我将自动梯度结果与我手工计算的导数(用Wirtinger微积分)进行比较时,我得到了一个不同的结果。我不知道我在哪里犯了这个错误,无论是在我的实现中,还是在我自己的梯度推导中。成本函数及其手工导数看起来如下:def f_derivative_by_hand(f):
f =
我正试图通过fftw库验证这种关系:因此,我选择f为高斯,计算了其导数的傅里叶变换,并将其与高斯的傅里叶变换乘以ik进行了比较。我得到的是:这是非常奇怪的,特别是因为高斯导数(即红色的导数)的傅里叶变换在原点不是0,而应该是0(我和解析的)。在我看来,这段代码似乎没问题,不管怎么说(我使用的是C):
int main()