learn_dl
learn_dl copied to clipboard
fc.python backward()是否有错误?
47 行 本层delta的计算应该是用本层的output的backward()结果乘w*上一层delta 是否应该改成self.delta = self.activator.backward(self.output) * np.dot( self.W.T, delta_array)
我也觉得是这样
作者这个函数里面得
self.delta = self.activator.backward(self.output) * np.dot( self.W.T, delta_array)
这段代码计算的是前一层的delta,所以用的是input
是这样的,假设你的代码中建立一个Network([5,4,1]),代表第一全连接层输入5、输出4,第二个全连接层,输入4、输出1,而我们一般可能认为他所写的FullConnectedLayer是表示3层,其实不然。所以当进入最后一层算delta时,其实不是在算输出层的delta(即只有一个节点的那一层),而是进入了一个由输入4、输出1组成的全连接层,用self.input就相当于他理论中介绍的隐藏层的那个delta。