git clone https://github.com/mnielsen/neural-networks-and-deep-learning.git

核心代码

声明了一个神经网络的class,在这个class中:

  • sizes表示各层中神经元的数量;
    • 例如,如果我们想创建⼀个在第⼀层有 2 个神经元,第⼆层有3个神经元,最后层有1个神经元的Network对象,net = Network([2, 3, 1]);
  • bias and weights;
    • Network 对象中的偏置和权重都是被随机初始化的;
    • 这样的随机初始化给了我们的随机梯度下降算法⼀个起点;
    • 注意Network初始化代码假设第⼀层神经元是⼀个输⼊层,并对这些神经元不设置任何偏置

定义sigmoid函数

对Network类添加⼀个feedforward⽅法

对于⽹络给定⼀个输⼊,返回对应的输 出

增加随机梯度下降算法

开始训练

        最后,我们将使⽤随机梯度下降来从MNISTtraining_data学习超过30次迭代期,⼩批量数据⼤⼩为10,学习速率

对于某些问题:

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐