Open ljfxmu opened 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
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