背景
手写数字识别是作为学习神经网络和深度学习最基础的实践项目。这篇博文里的代码均来自《神经网络与深度学习》一书。在network.py中虽然只有短短的七十多行代码,但代码压缩紧密,看起来比较费劲。在刚开始学习神经网络的时候理解了代码,但过了一个学期回过头再来看的时候发现还得重新理一遍。于是将其源码写上自己的注释和理解以便于以后能够快速回顾和后面学习者能够更轻松学习此源码。
说明
此注释代码为network1中的最基础的神经网络,采用了极少的优化步骤。在代码注释中我比较喜欢假设一组最简单的数据代入其中来方便理解其中复杂的维度转换和矩阵点乘的运算。在此代码中,假设有三层网络,每层的神经元个数分别为[2,3,1],训练集和测试集数据都为10组,每5组为一批,以此假设为注释来理解代码。