Keras – 使用大量特征

我正在开发一个使用20,000个特征来预测标签的Keras神经网络。虽然我可以构建网络,但由于模型太大无法装进我的GPU中,我不得不使用系统RAM,这导致在我的机器上运行模型需要几天时间。当前的输入是500,20000,1,输出为500,1,1

-我在第一个全连接(Dense)层使用了5,000个节点。对于这些特征数量来说,这是否足够?-有没有办法降低维度,以便在我的GPU上运行?


回答:

我想每个输入条目的大小是(20000, 1),你有500个条目构成了你的数据库?

在这种情况下,你可以先尝试减小batch_size,但我猜你指的是即使网络权重也无法装进你的GPU内存。在这种情况下,我知道的唯一方法就是进行降维处理。

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

重要提示:我能想到的唯一需要这么多特征的原因是,如果你在处理图像、光谱(你可以将光谱视为1D图像)等情况。在这种情况下,我建议研究卷积神经网络。它们不是全连接的,这可以减少很多可训练参数,同时可能表现得更好。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注