在前几年的分割实验中偶尔会碰到模型训练完后输出全是0的情况,前几天又碰到了一次,于是想着干脆把这个频发问题开个随笔记录和总结一下。
先说结论,一般来说导致这个问题的原因可能有:
-
lr太大了。这是个看起来比较弱智的原因,但是有的时候确实是这样的。对于一些结构特殊的模型按照往常的经验设置lr往往会导致该问题
-
自己设计网络时忘记使用normalization或者激活函数了。也是个比较弱智的原因,但是我会犯
-
数据集的问题。比如说label的值域没有调整好,训练和测试的input的格式不一样等等
-
网络结构本身就不合理。这个是比较难以说明白的东西,多试几次总全0的话我一般就认为是结构本身太过于离谱
原先觉得深度学习就是胡乱设计一通模型然后疯狂训练就完事了,觉得非常水。但现在再看一些结构会发现其中独特的结构还是有着合理的思想的,因此设计网络本身还是要围绕着一些基本法来的,天马行空四处架设连接不一定是好事。网络结构整体的简洁有时候往往是有效性和泛化性的保证。