基于一种微型Autograd引擎构建深度神经网络的方法

文章结尾附带源码获取方法

一个微型 Autograd 引擎。使用类似 PyTorch 的 API 在动态构建的 DAG 和其上的小型神经网络库上实现反向传播(反向模式自动差分)。两者都很小,分别只有大约 100 行和 50 行代码。 DAG 仅对标量值进行操作,因此例如我们将每个神经元分解成所有单独的微小加法和乘法。然而,这足以构建整个深度神经网络进行二元分类.

下面所述的示例,显示了许多可能支持的操作:

训练神经网络

 代码demo.ipynb 提供了训练 2 层神经网络 (MLP) 二元分类器的完整演示。这是通过从 micrograd.nn 模块初始化神经网络、实现简单的SVM“最大边缘”二元分类损失并使用 SGD 进行优化来实现的。如笔记本中所示,使用具有两个 16 节点隐藏层的2层神经网络,我们在月球数据集上实现了以下决策边界:

追踪/可视化

为了更加方便,代码trace_graph.ipynb 生成graphviz 可视化。例如。下面的这个是一个简单的 2D 神经元,通过在下面的代码中调用 draw_dot 获得,它显示数据(每个节点中的左侧数字)和梯度(每个节点中的右侧数字)。

源码获取方法:请点击下方二维码获取

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器视觉实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值