首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将自动分级ArrayBox转换为BigFloat

将自动分级ArrayBox转换为BigFloat
EN

Stack Overflow用户
提问于 2018-09-14 00:34:51
回答 1查看 839关注 0票数 1

正如标题中所说,我想从Autograd ArrayBox转换为BigFloat。

我的函数很简单:

代码语言:javascript
复制
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来近似雅可比矩阵和海森矩阵。当我运行我的代码时得到的错误是

代码语言:javascript
复制
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中的值?

EN

回答 1

Stack Overflow用户

发布于 2019-07-29 01:29:01

我做到了:

myvariable._value

我得到了一个数组,其中的值在ArrayBox中,然后我就可以操作它了。

在使用call(myvariable)检查ArrayBox的属性后,我弄清楚了这一点。看起来到处都没有记录。希望能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52318126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档