gpt4 book ai didi

Python - 超越 RAM 限制?

转载 作者:行者123 更新时间:2023-11-30 09:19:18 29 4
gpt4 key购买 nike

我正在尝试分析文本,但我的 Mac 的 RAM 只有 8 GB,并且 RidgeRegressor 在一段时间后停止,并显示 Killed: 9。我认为这是因为它需要更多内存。

有没有办法禁用堆栈大小限制器,以便算法可以使用某种交换内存?

最佳答案

您需要手动执行此操作。

这里可能有两个不同的核心问题:

  • A:保存您的训练数据
  • B:训练回归器

对于A,你可以尝试numpy的memmap其中抽象交换掉了。作为替代方案,请考虑将数据准备到 HDF5 或某些数据库。对于 HDF5,您可以使用 h5pypytables ,都允许类似 numpy 的使用。

对于 B:使用一些核外就绪算法是个好主意。在 scikit-learn 中,这些是支持 partial_fit 的。 .

请记住,此训练过程至少分解为两个新元素:

  • 高效的内存能力
    • 交换速度很慢;你不想在学习过程中使用保存 N^2 辅助内存的东西
  • 高效收敛

上面链接中的那些算法应该对两者都适用。

SGDRegressor可以参数化以类似于 RidgeRegression。

此外:可能需要手动使用 partial_fit,遵守算法规则(通常需要某种随机排序来进行收敛证明)。抽象交换的问题是:如果你的回归器在每个时期都进行排列,而不知道代价有多大,那么你可能会遇到麻烦!

因为问题本身相当困难,所以为此构建了一些特殊的库,而 sklearn 需要更多的手动工作,如所解释的。最极端的之一(很多疯狂的技巧)可能是 vowpal_wabbit (其中 IO 通常是瓶颈!)。当然还有其他流行的库,例如 pyspark ,服务于稍微不同的目的(分布式计算)。

关于Python - 超越 RAM 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46014563/

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