深度学习debug沉思录!
Datawhale
共 7881字,需浏览 16分钟
· 2020-08-18
原文丨https://zhuanlan.zhihu.com/p/158739701
前言
1、在分类问题中,损失函数及其快速得下降为0.0000
2、在正则化的过程中对神经网络的偏置也进行了正则
3、学习率太大导致不收敛
![](https://filescdn.proginn.com/9f6a6b42a0ed8c514ad502de01fb572d/46aa645b5d47516680e99aea7514d163.webp)
![](https://filescdn.proginn.com/404d62f0ff83be058952f4fcd66af087/e2c0309dd0b13715951f1a16989d45a5.webp)
4、别在softmax层前面的输入施加了激活函数
5、检查原数据输入的值范围
6、别忘了对你的训练数据进行打乱
7、一个batch中,label不要全部相同
8、少用vanilla SGD优化器
![](https://filescdn.proginn.com/68532aaddfd90f19f7042fcd78d62042/ade493a007240ea5bd34ab19ab84c9c9.webp)
![](https://filescdn.proginn.com/e3e3b3e287b79c2e21545464dc173d64/e7b660a0c90f6aba9a964f750074f0fc.webp)
9、检查各层梯度,对梯度爆炸进行截断
![](https://filescdn.proginn.com/28297d23df912f579776e30d7f025a4d/b036e3b050d355a20509ae0c984616a4.webp)
tf.clip_by_value(
t,
clip_value_min, # 指定截断最小值
clip_value_max, # 指定截断最大值
name=None
)
10、检查你的样本label
11、分类问题中的分类置信度问题
![](https://filescdn.proginn.com/f52f41c989f35391213052b1b93f44b9/87dc9ce9b3b140836ccc096521239a54.webp)
12、少在太小的批次中使用BatchNorm层
![](https://filescdn.proginn.com/f7d478aecc58b57db45c21136be2fa29/1a65ae09c2d994646a75b8a1d0108b60.webp)
13、数值计算问题,出现Nan
14、BN层放置的位置问题
![](https://filescdn.proginn.com/f8e54950ae239e9da6d2972babc15000/09581bfd42f346255b50891d839042ab.webp)
![](https://filescdn.proginn.com/13b67809c9daf509b3e8b09384da7b7b/3cdfe08230b0d3bbe3b6574792c4edd7.webp)
graph LR
weights --> BatchNorm
BatchNorm --> ReLU
graph LR
ReLU --> BatchNorm+dropout
BatchNorm+dropout --> weights
15、dropout层应用在卷积层中可能导致更差的性能
16、较小的batch size可以提供较好的泛化
17、初始化权值不能初始化为全0
18、别忘了你的偏置
19、验证准确率远大于测试准确率
20、KL散度出现负数
softmax
层的,才能保证概率和为1,不然可能会出现KL散度为负数的笑话。log_softmax
而目标值需要是softmax
值,也就说输入值需要进行对数操作后再转变为概率分布[27]。评论