【问题标题】:Keras - Using large numbers of featuresKeras - 使用大量功能
【发布时间】:2019-10-19 12:03:12
【问题描述】:

我正在开发一个 Keras NN,它使用 20,000 个特征来预测标签。我可以构建网络,但必须使用系统 RAM,因为模型太大而无法放入我的 GPU,这意味着在我的机器上运行模型需要几天时间。输入当前是 500,20000,1 到输出 500,1,1

-我在第一个全连接(密集)层中使用了 5,000 个节点。这足以满足功能的数量吗? - 有没有办法降低维度以便在我的 GPU 上运行它?

【问题讨论】:

    标签: python machine-learning keras keras-layer tf.keras


    【解决方案1】:

    我想每个输入条目的大小为(20000, 1),而您的数据库有 500 个条目?

    在这种情况下,您可以从减少 batch_size 开始,但我也认为您的意思是即使网络权重也不适合您的 GPU 内存。在那种情况下,你唯一能做的(据我所知)就是降维。

    您有 20000 个特征,但不太可能所有特征都对输出值很重要。使用 PCA(主成分分析),您可以检查所有参数的重要性,您可能会发现只有少数参数组合起来对最终结果的重要性达到 90% 或更多。在这种情况下,您可以忽略不重要的特征,并创建一个基于假设只有 1000 个(甚至更少)特征来预测输出的网络。

    一个重要说明:我能想到的唯一原因是您需要这么多功能,如果您正在处理图像,光谱(您可以将光谱视为一维图像),......在这个案例我建议研究卷积神经网络。它们不是全连接的,这会删除很多可训练的参数,但可能表现更好。

    【讨论】:

    • 假设我使用了 CNN,我需要与全连接层一样多的神经元吗?
    • 取决于你所说的神经元,如果你指的是过滤器(正如 Keras 所说的那样),那么这取决于你的具体情况,每层需要多少个。全连接层和卷积层之间存在一些关键区别,因此我建议您首先开始阅读它们。
    • 您的问题解决了吗?如果是,请标记为这样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2020-02-02
    • 1970-01-01
    • 2023-03-28
    • 2023-03-09
    • 2021-03-14
    相关资源
    最近更新 更多