神经网络结果总是相同

编辑: 对有兴趣的人来说,我做了一些改进。我使用了L2正则化器=0.0001,增加了两个没有激活函数的密集层,分别有3和5个节点。在第二个和第三个GRU层上添加了0.1的丢弃率。将批量大小减少到1000,同时将损失函数设置为平均绝对误差(mae)。

重要说明: 我发现我的测试数据框与训练数据框相比非常小,这是导致结果非常差的主要原因。

我有一个GRU模型,输入有12个特征,我试图预测输出功率。然而,我真的不明白应该选择

  • 1层还是5层
  • 50个神经元还是512个神经元
  • 小批量大小下的10个周期还是大批量大小下的100个周期
  • 不同的优化器和激活函数
  • 丢弃率和L2正则化
  • 增加更多的密集层
  • 增加和减少学习率

我的结果总是相同的,没有任何意义,我的损失和验证损失在前两个周期内急剧下降,然后在剩余的周期内保持恒定,验证损失有小幅波动

这是我的代码和损失图,如果需要的话,还有我的数据框:

数据框1: https://drive.google.com/file/d/1I6QAU47S5360IyIdH2hpczQeRo9Q1Gcg/view数据框2: https://drive.google.com/file/d/1EzG4TVck_vlh0zO7XovxmqFhp2uDGmSM/view

...

enter image description here


回答:

我做了一些改进。我使用了L2正则化器=0.0001,增加了两个没有激活函数的密集层,分别有3和5个节点。在第二个和第三个GRU层上添加了0.1的丢弃率。将批量大小减少到1000,同时将损失函数设置为平均绝对误差(mae)。

重要说明:我发现我的测试数据框与训练数据框相比非常小,这是导致结果非常差的主要原因。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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