gpt4 book ai didi

python - 为什么 scipy.optimize.fmin_l_bfgs_b() 内存使用量随着迭代而增加?

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:39 26 4
gpt4 key购买 nike

我已经使用 scipy.optimize.fmin_l_bfgs_b() 来最小化函数有一段时间了,但最近我遇到了一种我以前没有注意到的行为。在优化一些新函数时,随着执行更多迭代,内存使用量不断增加。例如,到第 1500 次迭代时,内存使用量增加了 100 倍,在某些情况下,我必须在内存耗尽之前停止优化。作为引用,我之前运行过 scipy.optimize.fmin_l_bfgs_b() 来优化其他函数,但从未看到内存使用量增加。

根据我对这个函数工作原理的理解,它应该在每次迭代时执行类似类型的计算,所以我不明白为什么内存使用量会增加。

这是预期的行为,还是可能存在某种内存泄漏(在 fmin_l_bfgs_b 中或在我提供的函数中)?

最佳答案

如果在最小化函数中没有释放内存,则每次调用该函数都会增加程序的内存分配。大多数 Python 对象都会正确释放。

我遇到了从 C 扩展模块返回的数组的问题,其中该模块负责分配内存,但没有正确返回它。重写模块以正确释放内存解决了该问题,解决方案已在此处讨论:

Memory leak in Python extension when array is created with PyArray_SimpleNewFromData() and returned

关于python - 为什么 scipy.optimize.fmin_l_bfgs_b() 内存使用量随着迭代而增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35637270/

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