卷积神经网络loss值太高

使用只含有全连接层的神经网络loss值可以降低到0.2,但使用卷积神经网络就训练得到的loss值就一直是0.9,1,甚至为2.
本人尝试了添加权重初始化、修改学习速率、以及选择其他优化器,都未见成效,请大家指点一二。

img

img

img

img

你的数据加载器呢?数据预处理的时候有没有进行归一化处理?

提供参考实例:https://blog.ailemon.net/2019/02/26/solution-to-loss-doesnt-drop-in-nn-train/
【如何解决神经网络训练时loss不下降的问题】

模型结构太复杂,神经网络不是越复杂越好,建议把4个全连接层换成2个全连接层,优化器换成Adam。

训练样本有多少,训练样本少的话损失值就高

参考一下 希望能帮助到你

试试调节学习率和优化器,同时也要注意矩阵相乘的顺序有没有弄反了。

参考链接,希望有帮助哦

神经网络训练时损失(loss)不下降常见解决办法以及训练时损失出现nan可能原因以及解决_童话ing的博客-CSDN博客_训练损失不下降 本文来源于知乎,转载一下进行收藏,文章来源:如何解决神经网络训练时loss不下降的问题1、训练集loss不下降  训练集的loss在训练过程中迟迟不下降,一般是由这几个方面导致的,这一点在我之前的文章《深度学习:欠拟合问题的几种解决方案》中基本都涉及到了,详细内容可以查看原文,本文中,将这些内容面再做一个扩充。1.1 模型结构和特征工程存在问题  如果一个模型的结构有问题,那么它就很难训练,通常,自己“自主研发”设计的网络结构可能很难适应实际问题,通过参考别人已经设计好并实现和测试过的结构,以及. https://blog.csdn.net/dl962454/article/details/109624917

警惕!损失Loss为Nan或者超级大的原因_catbird233的博客-CSDN博客_损失为nan 转自:https://oldpan.me/archives/careful-train-loss-nan-inf前言训练或者预测过程中经常会遇到训练损失值或者验证损失值不正常、无穷大、或者直接nan的情况:遇到这样的现象,通常有以下几个原因导致:梯度爆炸造成Loss爆炸原因很简单,学习率较高的情况下,直接影响到每次更新值的程度比较大,走的步伐因此也会大起来。如下图,过大的学... https://blog.csdn.net/lrt366/article/details/97616926

神经网络训练时损失(loss)不下降常见解决办法以及训练时损失出现nan可能原因以及解决_童话ing的博客-CSDN博客_训练损失不下降 本文来源于知乎,转载一下进行收藏,文章来源:如何解决神经网络训练时loss不下降的问题1、训练集loss不下降  训练集的loss在训练过程中迟迟不下降,一般是由这几个方面导致的,这一点在我之前的文章《深度学习:欠拟合问题的几种解决方案》中基本都涉及到了,详细内容可以查看原文,本文中,将这些内容面再做一个扩充。1.1 模型结构和特征工程存在问题  如果一个模型的结构有问题,那么它就很难训练,通常,自己“自主研发”设计的网络结构可能很难适应实际问题,通过参考别人已经设计好并实现和测试过的结构,以及. https://blog.csdn.net/dl962454/article/details/109624917

在神经网络的训练过程中,正常情况下整体的过程是一个Loss不断下降的过程,然而在训练过程中往往存在一些batch_size输入时,前向传播得到的Loss突然变大的情景。

在训练神经网络过程中,经过softmax函数输出概率后,当当前最大概率对应的类别与训练标签一致时,损失Loss往往较小,而经过softmax输出时,训练标签所对应的概率softmax概率较小,此时的Loss计算结果往往很大。对此引出两个解决问题的思路:

1.可能是训练标签未进行很好的标注,假设当前是一个二分类问题,我们需要提前定义的标签类别为0,1。假设一个标签被错误的定义为2,导致此batch输入无论怎么训练得到的结果都是错误的分类,导致Loss过大情形,此时需要我们可以通过重新制作训练标签来解决。

2.可以通过设定一些条件来对Loss进行约束,在训练过程中如果出现Loss增大程度超出了一定的阈值,可以将此时的Loss强制设为0,这样在反向传播时就不会对权重和bias系数的迭代更新做贡献。

img


看你的图,你的数据就没放到网络里,输出也没有,去计算loss,要根据数据去改model结构(输入输出)而不是为了不报错去改数据!!
模型只是为了最大程度的拟合数据,记住这一点就好了,看你的代码,画的图就是计算随机数(torch.randn)的loss -_-!

卷积神经网络进行学习曲线应该是下降,并且精度不能匹配过高

1.先看一下输入图像是否有噪声,噪声会影响网络的计算结果;
2.如果没有噪声,看一下每个卷积层的参数设置,注意权值和阈值的调整;
3.可以试着用降低中心点和增加边缘的方法来改善;
4.最后,如果上述两种方法都不行,可能是卷积层有问题。
一、在预处理过程中尽量减少噪声,这里主要包括图片和视频。二、在卷积层中使用动态范围较小的权重,如高斯分布的权重。三、尽量使用低的平均值和高的方差。四、使用大的激活函数,并且避免使用小的激活函数。五、将输出的目标区域划分成多个区域。六、使用全连接层,尽量减少反向传播过程中的损失。七、使用强大的前馈层。八、减少光照和噪声。九、减少对数据集的过度拟合。十、使用快速变换的方式进行卷积操作。

只含有全连接层的神经网络loss值可以降低到0.2,但使用卷积神经网络就训练得到的loss值就一直是0.9。
从描述上看,很明显是你的数据不适合卷积神经网络,看了一下你的代码,包含了pool,删掉这个pool层应该会好一些。你应该在你原先的fc网络的最前面逐步增加conv或pool层,当效果下降后停止增加