最近炼丹,网络往往什么都学不到= =,不仅怀疑,看到一份英文的炼丹指南,记录一些心得。
英文链接:37 Reasons why your Neural Network is not working
紧急手段
-
使用已知适用于此类数据的简单模型(例如,VGG用于图像)。 如果可以,使用标准损失。
-
停掉所有的花里胡哨,例如 正则化和数据增强。
-
如果是微调模型,请仔细检查数据预处理,确保它与原始模型的训练格式相同。
-
验证输入数据是否正确。
-
从一个非常小的数据集开始(2-20个样本),在其上过拟合, 再在它上面逐渐添加更多数据。
-
开始逐步添加所有省略的部分:数据增强/正则化,自定义损失函数,尝试更复杂的模型。
数据集的问题
检查你的输入
确认你输入的数据符合情理,最好输出一个batch的tensor,确认你的输入是可靠的。
尝试随机输出
输入随机的数据,如果出现同样的错误,说明你的网络,将数据转换为垃圾数据,你需要一步步排查那一层出现了问题
数据加载
你的数据肯是好的,但是你将其传给输入的代码,可能是坏的,所以打印出第一层的输入来检查它