gpt4 book ai didi

python - 如何强制 scipy.optimize.fmin_l_bfgs_b 使用 'dtype=float32'

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:01 28 4
gpt4 key购买 nike

我正在尝试使用 Python 中的 GPU 计算来优化函数,因此我更喜欢使用 dtype=float32 将所有数据存储为 ndarray。

当我使用scipy.optimize.fmin_l_bfgs_b时,我注意到优化器总是将float64(在我的64位机器上)参数传递给我的目标函数和梯度函数,即使当我传递 float32 ndarray 作为初始搜索点 x0 时也是如此。当我使用 cg 优化器 scipy.optimize.fmin_cg 时,情况有所不同,当我将 float32 数组作为 x0 传递时,优化器将使用 float32 code> 在所有后续的目标/梯度函数调用中。

所以我的问题是:我可以强制 scipy.optimize.fmin_l_bfgs_b 优化 float32 参数,就像 scipy.optimize.fmin_cg 中那样吗?

谢谢!

最佳答案

我不确定你是否能做到。 fmin_l_bfgd_b 不是由纯 python 代码提供的,而是由扩展(FORTRAN 代码的包装)提供的。在Win32/64平台中可以在\scipy\optimize\_lbfgsb.pyd中找到。只有当您可以以不同的方式编译扩展或修改 FORTRAN 代码时,您想要的才可能实现。如果您检查 FORTRAN 代码,您会发现它到处都有 double ,基本上是float64。我不确定将它们全部更改为单精度就能完成这项工作。

在其他优化方法中,FORTRAN 还提供了cobyla。鲍威尔的方法也是如此。

关于python - 如何强制 scipy.optimize.fmin_l_bfgs_b 使用 'dtype=float32',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19041486/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com