CNN模型梯度检查实现中的梯度差异是否符合可接受标准?
梯度差异是否可接受的判断
首先直接给你结论:这些梯度差异完全在可接受的范围内,你的反向传播实现看起来是正确的。
具体来说:
- 你提到的可接受梯度差异量级约为
1e-9,而从你给出的数值来看,数值梯度和计算梯度的差异在1e-11量级(比如你给出的前两个数值差约为9e-12),比标准阈值小了两个数量级,这说明你的梯度计算精度非常高。 - 梯度检查的阈值并非绝对严格,实际中会根据模型复杂度、激活函数类型略有浮动:比如使用ReLU这类带截断特性的激活时,偶尔会出现稍大的差异,但你的情况远低于通用标准,完全不用担心。
- 补充一点:Epoch 0的初始损失值2.856,对于多类别分类任务(比如类别数大于10的情况)是合理的,符合随机初始化权重下的预期表现。
内容的提问来源于stack exchange,提问作者Greg Attra
相关产品推荐
相关产品推荐

