hanbt / learn_dl

Deep learning algorithms source code for beginners
Apache License 2.0
1.2k stars 988 forks source link

零基础入门深度学习(3) - 神经网络和反向传播算法 向量编程 计算输出层的delta时为何重复计算? #46

Open ljfxmu opened 5 years ago

ljfxmu commented 5 years ago

def calc_gradient(self, label): delta = self.layers[-1].activator.backward( self.layers[-1].output ) * (label - self.layers[-1].output) //计算梯度时,这里先计算了输出层的delta. 然后再用这个delta去计算隐藏层的delta。

//但是在如下代码却是用隐藏层的Delta计算公式,输出层的delta值再次计算了一下输出层的delta值 ? layer遍历是从输出层开始的? for layer in self.layers[::-1]: layer.backward(delta) delta = layer.delta return delta