正如标题中所说,我想从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中的值?
发布于 2019-07-29 01:29:01
我做到了:
myvariable._value
我得到了一个数组,其中的值在ArrayBox中,然后我就可以操作它了。
在使用call(myvariable)检查ArrayBox的属性后,我弄清楚了这一点。看起来到处都没有记录。希望能有所帮助
https://stackoverflow.com/questions/52318126
复制相似问题