【问题标题】:Manipulating Pyspark dataframes for the LSTM model为 LSTM 模型操作 Pyspark 数据帧
【发布时间】:2022-01-18 21:15:06
【问题描述】:

我正在尝试训练用于文本预测的 LSTM 神经网络。 我有一个数据框,其中包含以字符串形式编写的 350 万个国际象棋游戏。
例如:

我已经解析、标记化并使游戏长度相同。为此,我使用了一个 udf 函数,这样我就有了一个整数列表,用于标识游戏中的移动。

完成后,我的模型将接受形状为 [batch, timesteps, feature] 的 3D 张量作为输入。 (我用的是keras LSTM:https://keras.io/api/layers/recurrent_layers/lstm/

为此,我想将我的 pyspark 数据帧转换为 pandas 并使用 numpy,但我不能这样做,因为我是在 databricks 社区版上开发它,它总是给我带来内存不足的问题。

谁能告诉我如何解决这个问题?由于 OOM 问题,我无法将其转换为 pandas,任何人都可以建议我另一种方式吗?

【问题讨论】:

    标签: python pandas keras pyspark lstm


    【解决方案1】:

    不要将游戏存储为字符串 - 将它们存储为整数,或者更好的二进制编码值。这种方法将大大减少您的内存存储,并且它具有更易于计算的额外好处。使用关系模式,您将拥有games->moves,其中games 将存储人口统计数据(姓名、获胜次数),而moves 将只是数字编码的交换列表。

    您仍然可以将值处理为字符串/单词/任何内容,因为计算机不需要人工文本来生成模型。当然,如果它是生成模型,则必须在背面执行反向翻译,但这很简单。

    【讨论】:

    猜你喜欢
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2017-09-18
    相关资源
    最近更新 更多