基于https://www.kaggle.com/jeffd23/deep-learning-in-the-deep-blue-lb-1-279
2019-03-05 终于自己手写了一波自定义数据生成器,但是最终model的fit_generator效果并不理想。令人费解的是,我只是变动了一下数据生成器,只是将原来代码中的所有数据放在同一个数组里的方法变成了数据生成器,val_loss就高得吓人。所以目前正在研究到底是哪里的细微的区别导致了这样的结果。
关于kaggle kernel评论的收获:
1.看评论说应该将sigmoid换为softmax
2.全连接太多可能会导致过拟合(在这个例子里面)
3.有人和我遇到了类似的问题
2019-03-06
不管怎么说,我是严重过拟合了。检查了很多次,决定换个模型试试。
改了下原来的模型,过拟合的情况小了点。val_loss降了不少。不过train_loss还是低得可怕,哭了。我决定再删一层!
然而清醒地意识到,删网络并不能改善val_loss的情况。于是我决定检查代码。主要是自定义生成器这里我是自己写的,可能还是有问题。不检查不知道,一检查吓一跳。
我的数据生成器某个地方写错了,导致实际上只有一张图片在训练。难怪我的train_loss降得那么可怕。后来改了之后,val_loss还是居高不下。于是我有检查了一次。= =原来还是那句代码,放错了地方,导致实际上只有一个batch的图片在训练。后来决定检查数据生成器的时候,一定要先输出给自己看看,保证数据是按照自己的要求遍历的。
在这里卡了这么久,也算是一个惨痛的教训了。
train loss 狂降不止!val loss居高不下!原来是菜鸡生成器搞鬼!
搜到的关于过拟合的讲解。https://www.sohu.com/a/162003640_465944
2019-03-06
但是又出现了一个新问题,val loss竟然比train loss还低。这又是怎么一回事?
持续更新---