karpathy/micrograd

A tiny scalar-valued autograd engine and a neural net library on top of it with PyTorch-like API

解决的问题

micrograd 是一个微型的教育用 autograd 引擎,它在动态构建的有向无环图 (DAG) 上实现反向传播(反向模式自动微分)。它允许用户使用类 PyTorch 的 API 构建和训练小型神经网络,使梯度计算和网络训练的内部机制变得直观易懂。

工作原理

该引擎仅在标量值上运行,将每个操作(如加法和乘法)分解为单个步骤。它构建这些操作的 DAG,从而允许引擎通过反向传递计算梯度。在此引擎之上,提供了一个小型神经网络库,用于构建多层感知器 (MLP) 和二元分类器。

适用对象

想要理解深度学习的核心数学基础以及自动微分工作原理,且不想处理大规模生产框架复杂性的开发人员和学生。

特点

  • 极小的占用: autograd 引擎大约只有 100 行代码,神经网络库大约有 50 行。
  • 类 PyTorch API: 为熟悉现代深度学习库的人提供熟悉的接口。
  • 可视化: 包含生成计算图的 Graphviz 可视化工具,同时显示数据和梯度。
  • 专注于教育: 专门为教育目的而设计,用于演示二元分类和神经网络的基本构建模块。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目