神经网络常见错误(Most Common Neural Net Mistakes)
本文总结自Andrej Karpathy的一篇推特及其评论区。原推特链接

- 你没有尝试在一个batch上首先达到过拟合
- 你忘记转换train和eval模式
- 你忘记在.backward()之前设置.zero_grad()
在Pytorch中 - 你向损失函数输入了一个经过softmax后的输出,但是可能你的损失函数需要一个原始概率作为输入
- 你没有在使用BatchNorm时将你的Linear层或Conv2d层的偏差设为False
即设置bias=False - 你错误的使用了.view() 和.permute()
错误的认为它们是一个东西 - 初始学习率设置的过于大了
- 错误的数据增强(data augmentation)
如:涉及左右的视觉任务使用随机mirror进行数据增强 - 你忘记将做完比较的tensor转回为float()类型,或加减byte()类型然而结果超出0-255的范围
- 忘记打乱训练集的数据(shuffle),导致一个batch内的数据有较强的关联
- 使用了错误的normalization,或训练和测试过程没有使用同样的normalization
- 在错误的维度上使用softmax或其他的loss
- loss项使用了错误的符号
- 忘记在求和、平均、取最大值等操作是指明维度(dim/axis)
如在平均一个batch的loss时 - fine-tuning或feature extraction时:数据预处理不一致
(如均值、方差与预训练集不同)
本文列举了神经网络训练过程中常见的十个误区,包括未在小批量数据上实现过拟合、混淆训练与评估模式、忽视梯度清零、损失函数输入不当、BatchNorm使用偏差、张量维度操作错误等问题,旨在帮助读者避免这些常见错误,提高模型训练效果。
2023

被折叠的 条评论
为什么被折叠?



