不懂,为什么梯度是16384,就很迷,难道梯度=d是a的多少倍嘛?
没啥问题,在你 a 的初值为 a = 0.0827
的情况下,d 最终为可以表达为 d = (2^14) * a = 16384 * a
,所以 d 关于 a 的偏导数为 dd/da = 16384
,属于预期行为。
a 的初值为 a = 0.0827, a*(2^4)=1.3232,a*(2^14)=1.32321024>1000,这时while条件才结束。a.sum()=1.32321024, 进入第一个if分支,所以a的导数为2^14=16384