正如标题中所说,我想从 Autograd ArrayBox 转换为 BigFloat。
我的功能很简单:
def fun(mean, variance, bin_mean, bin_variance):
first = np.float(bf.sqrt(1.0 * bin_variance / (bin_variance + variance)))
second_numerator = (bin_mean - mean)**2
second_denominator = 2*(bin_variance + variance)
second = np.float(bf.exp(-second_numerator/second_denominator))
return first * second
我需要高精度,因此我想使用bigfloat包。现在,这个函数是一个更复杂的函数的一部分,我正在使用scipy.optimize.minimize
函数来找到函数的最小值,同时也autograd
用于逼近雅可比矩阵和黑森矩阵。我运行代码时遇到的错误是
TypeError: Unable to convert argument Autograd ArrayBox with value 0.01297563222656762 of type <class 'autograd.numpy.numpy_boxes.ArrayBox'> to BigFloat
所以我的问题是:如何从 Autograd 的 ArrayBox 转换为 BigFloat?如何正确提取 ArrayBox 内的值?