下面这块代码是源码最核心的部分,也即 BP 算法的实现,包含了前向传输和逆向反馈,前向传输在 Network 里有零丁一个办法(膳绫擎提到的 feedforward 办法),那个办法是用于验证练习好的神经收集的精确度的,鄙人面有提到该办法。
- def backprop(self, x, y):
- """
- :param x:
- :param y:
- :return:
- """
- nabla_b = [np.zeros(b.shape) for b in self.biases]
- nabla_w = [np.zeros(w.shape) for w in self.weights]
- # 前向传输
- activation = x
- # 储存每层的神经元的值的矩阵,下面轮回会 append 每层的神经元的值
- activations = [x]
- # 储存每个未经由 sigmoid 计算的神经元的值
- zs = []
- for b, w in zip(self.biases, self.weights):
- z = np.dot(w, activation)+b
- zs.append(z)
- activation = sigmoid(z)
- activations.append(activation)
- # 求 δ 的值
- delta = self
推荐阅读
发个牢骚,搞大年夜数据的也得扶植数据仓库吧。并且不管是传统行业照样如今的互联网公司,都须要对数据仓库有必定的看重,而不是谈一句本身是搞大年夜数据的就很厉害了。数据仓库更多代表>>>详细阅读
本文标题:一文详解神经网络 BP 算法原理及 Python 实现
地址:http://www.17bianji.com/lsqh/36072.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示