【问题标题】:Is this TF training curve overfitting or underfitting?这个 TF 训练曲线是过拟合还是欠拟合?
【发布时间】:2020-08-05 01:11:33
【问题描述】:

在过度拟合的情况下,据我所知,val_loss 必须飙升,而不是 train_loss。 但是下面的情况如何(val_loss 仍然很低)?这个模型是否严重欠拟合?还是完全不同的情况? 以前我的模型会过度拟合,所以我添加了 0.3 的 dropout(4 个 CuDNNGRU 层,64 个神经元和一个 Dense 层,batchsize 为 64),那么我应该减少 dropout 吗?

【问题讨论】:

  • 如果您简明扼要地用文字解释您的情况,这将大有帮助(为了清晰、索引、搜索引擎的可查找性):“val_loss 仍然很低”。

标签: python tensorflow keras deep-learning


【解决方案1】:

这既不是过拟合也不是欠拟合。有些人将其称为Unknown fit。当您在 keras 中应用正则化(L1,L2,Dropout,...)时,会发生验证

但很明显,您的模型并未针对您的验证集进行优化(几乎是一条直线)。这可能是由于很多原因:

  • 您的验证集不能很好地代表您的数据集,预测非常简单或非常小。
  • 降低学习率或添加更多正则化(recurrent_regularization,因为您使用的是 CuDNNGRU)
  • 您的损失函数不适用于您要解决的问题。

希望这些提示对您有所帮助。

【讨论】:

  • 感谢@Coderji 的帮助。这是一个时间序列模型,损失函数是“mse”。据我所知,对于时间序列预测模型,这应该是一个相当合适的损失函数。如果您不这么认为,请告诉我
  • 是的,它适合这种情况。因此,我建议您查看您的验证集,提供更大的数据集,打乱您的数据或准备更具代表性的验证集并提供它到validation_data参数
  • 我所做的只是在model.fit方法中添加validation_data参数,值为0.33。但我还没有定义任何x_testy_test。我只创建了训练数组(x_trainy_train)。
猜你喜欢
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2021-04-13
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
相关资源
最近更新 更多