文章结尾附带源码获取方法
一个微型 Autograd 引擎。使用类似 PyTorch 的 API 在动态构建的 DAG 和其上的小型神经网络库上实现反向传播(反向模式自动差分)。两者都很小,分别只有大约 100 行和 50 行代码。 DAG 仅对标量值进行操作,因此例如我们将每个神经元分解成所有单独的微小加法和乘法。然而,这足以构建整个深度神经网络进行二元分类.
下面所述的示例,显示了许多可能支持的操作:
训练神经网络
代码demo.ipynb 提供了训练 2 层神经网络 (MLP) 二元分类器的完整演示。这是通过从 micrograd.nn 模块初始化神经网络、实现简单的SVM“最大边缘”二元分类损失并使用 SGD 进行优化来实现的。如笔记本中所示,使用具有两个 16 节点隐藏层的2层神经网络,我们在月球数据集上实现了以下决策边界:
追踪/可视化
为了更加方便,代码trace_graph.ipynb 生成graphviz 可视化。例如。下面的这个是一个简单的 2D 神经元,通过在下面的代码中调用 draw_dot 获得,它显示数据(每个节点中的左侧数字)和梯度(每个节点中的右侧数字)。
源码获取方法:请点击下方二维码获取