作家
登录

神经网络中 BP 算法的原理与 Python 实现源码解析

作者: 来源: 2017-06-01 08:55:31 阅读 我要评论

in mini_batches: 
  •             # 根据每个小样本来更新 w 和 b,代码鄙人一段 
  •             self.update_mini_batch(mini_batch, eta) 
  •         # 输出测试每轮停止后,神经收集的精确度 
  •         if test_data: 
  •             print "Epoch {0}: {1} / {2}".format( 
  •                 j, self.evaluate(test_data), n_test) 
  •         else
  •             print "Epoch {0} complete".format(j) 
  • 根据 backprop 办法获得的偏导数更新 w 和 b 的值。

    1. def update_mini_batch(self, mini_batch, eta): 
    2.     """ 
    3.     更新 w 和 b 的值 
    4.     :param mini_batch: 一部分的样本 
    5.     :param eta: 进修率 
    6.     """ 
    7.     # 根据 biases 和 weights 的行列数创建对应的全部元素值为 0 的空矩阵 
    8.     nabla_b = [np.zeros(b.shape) for b in self.biases] 
    9.     nabla_w = [np.zeros(w.shape) for w in self.weights] 
    10.     for x, y in mini_batch: 
    11.         # 根据样本中的每一个输入 x 的其输出 y,计算 w 和 b 的偏导数 
    12.         delta_nabla_b, delta_nabla_w = self.backprop(x, y) 
    13.         # 累加储存偏导值 delta_nabla_b 和 delta_nabla_w  
    14.         nabla_b = [nb+dnb for nb, dnb in zip(nabla_b, delta_nabla_b)] 
    15.         nabla_w = [nw+dnw for nw, dnw in zip(nabla_w, delta_nabla_w)] 
    16.     # 更新根据累加的偏导值更新 w 和 b,这里因为用了小样本, 
    17.     # 所以 eta 要除于小样本的长度 

    18.   推荐阅读

        PHP底层的运行机制与原理解析

      PHP说简单,然则要精晓也不是一件简单的事。我们除了会应用之外,还得知道它底层的工作道理。懂得PHP底层实现的目标是什么?动态说话要像用好起首得懂得它,内存治理、框架模型值得我们借鉴>>>详细阅读


      本文标题:神经网络中 BP 算法的原理与 Python 实现源码解析

      地址:http://www.17bianji.com/lsqh/35499.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)