代码之家  ›  专栏  ›  技术社区  ›  koolmees

在训练学习模型时优化RAM的使用

  •  0
  • koolmees  · 技术社区  · 6 年前

    我第一次致力于创建和培训深度学习模式。在这个项目之前,我对这个问题没有任何了解,因此即使现在我的知识也很有限。

    我的代码似乎有一些可怕的低效,我想知道他们是否可以解决。一个例子是熊猫.海螺我的模型的RAM使用量从3GB猛增到11GB,这看起来非常极端,之后我删除了一些列,使RAM峰值达到19GB,但实际上在计算完成后返回到11GB(不像concat)。我还强迫自己暂时停止使用SMOTE,因为RAM的使用量会增加很多。

    在代码的最后,在进行训练的地方,模型在尝试拟合模型的同时呼吸最后的一口气。我能做些什么来优化这个?

    附言:如果可能的话,我也想要回我的SMOTE

    2 回复  |  直到 6 年前
        1
  •  0
  •   MediocreMyna    6 年前

        2
  •  0
  •   kutschkem    6 年前

    让我们分析一下步骤:

    第一步:OHE

    步骤1.1:确定类别 流读取您的数据点,收集所有类别。不必保存读取的数据点。

    步骤1.2:转换数据 在步骤1.1之后,每个数据点都可以独立转换。所以流读取,转换,流写入。您在任何时候都只需要内存中的一个或很少的数据点。

    步骤1.3:特征选择 研究特性选择以减少内存占用和提高性能可能是值得的。这个 answer

    基于熵的特征选择方法依赖于所有的数据。虽然你也可以把一些数据流放在一起,但在过去,一种对我很有效的方法是删除只有一个或两个数据点的特征,因为这些特征的熵很低,可能对分类器帮助不大。这可以像步骤1.1和步骤1.2一样再次执行

    第二步:打击

    第三步:培训