Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras:过度装配_Python_Tensorflow_Keras - Fatal编程技术网

Python Keras:过度装配

Python Keras:过度装配,python,tensorflow,keras,Python,Tensorflow,Keras,我试图建立一个基于卷积的模型。我训练了两种不同的结构,如下所示。正如您可以看到的,对于单层,随着时间的推移,并没有任何明显的变化。双层Conv2D提高了列车数据集的准确性和损失,但验证特性将是一个悲剧。 根据我不能增加数据集的事实,我应该做些什么来改进验证特性? 我已经检查了正则化器L1和L2,但它们并没有影响我的模型。 验证变成了一场悲剧,因为模型对训练数据的拟合过度,如果其中任何一项有效,您可以尝试 1) 批量标准化将是一个很好的选择。 2) 尝试减少批量。1)您可以使用自适应学习率(指数衰

我试图建立一个基于卷积的模型。我训练了两种不同的结构,如下所示。正如您可以看到的,对于单层,随着时间的推移,并没有任何明显的变化。双层Conv2D提高了列车数据集的准确性和损失,但验证特性将是一个悲剧。 根据我不能增加数据集的事实,我应该做些什么来改进验证特性? 我已经检查了正则化器L1和L2,但它们并没有影响我的模型。

验证变成了一场悲剧,因为模型对训练数据的拟合过度,如果其中任何一项有效,您可以尝试

1) 批量标准化将是一个很好的选择。 2) 尝试减少批量。

1)您可以使用自适应学习率(指数衰减或阶跃依赖可能对您有效),此外,当您的模型进入局部最小值时,您可以尝试极高的学习率

2)如果您正在使用图像进行训练,您可以翻转、旋转或其他方式来增加数据集的大小,也许其他一些增强技术也适用于您的情况

3)尝试改变模型,如更深、更浅、更宽、更窄

4)如果您正在进行分类模型,请确保最终不会使用sigmoid作为激活函数,除非您正在进行二进制分类

5)在培训课程之前,始终检查数据集的情况

  • 您的列车测试拆分可能不适合您的情况
  • 您的数据中可能存在极端噪音
  • 您的部分数据可能已损坏

注意:每当有新想法出现时,我都会更新它们。此外,我不想重复这些评论和其他答案,它们都为您的案例提供了有价值的信息。

我尝试了各种已知的模型,这些模型在小数据集上运行良好,但正如我所怀疑的,以及我的最终结论-这是一个失败的原因

你们并没有足够的数据来训练一个好的DL模型,甚至像SVM这样的ML模型——因为有八个独立的类会使问题更加严重;您的数据集将有机会使用支持向量机进行二元分类,但对于8类数据集则没有。作为最后手段,您可以尝试XGBoost,但我不会打赌

你能做什么?获取更多数据。这是没有办法的。我没有一个确切的数字,但是对于8级分类,我想说你需要50-200倍你当前的数据才能得到合理的结果。还要注意的是,在一个更大的验证集上,您的验证性能肯定会差得多,这一数字中有说明



对于读者,OP与我分享了他的数据集;形状是:
X=(1152,1024,1),y=(1152,8)

确保如果您在Conv2D层上使用的是dropout,那么它是
SpatialDropout2D
有几种技术可以处理过度拟合。正则化是第一个,如果它不影响你的结果,你要么没有正确地使用它,要么因子太小——在某一点上,你应该总能看到一些不同。辍学是另一种常见的技术,批处理规范化可能会有所帮助。如果可以的话,数据扩充也有帮助。@jdehesa我不能使用数据扩充。当然,我可以看到一些轻微的变化,但不是积极的变化。我已经尝试过批量标准化,但没有出现积极的改进@ArunJose_IntelI会很乐意你把我关于空间辍学的评论添加到你的列表中,这确实值得repeating@Andy谢谢你的回复。我想查一下辍学的学生。“我会报告的。”安迪谢谢你的回答。将两个SpatialDropout2D添加到模型的结果已添加到第一篇文章中。正如您所看到的,损耗只有一个变化(第1000个纪元中的结果与前一个模型中的结果相同,在早期纪元中没有SpatialDropout2D)。根据尝试和错误以及Physicing在文章中提到的内容,我认为这是因为我使用的数据集很小以及数据的性质。