这个项目能做什么
micrograd提供了一个最小化的标量值自动微分引擎,以及一个基于该引擎构建的轻量级神经网络库。核心的`Value`抽象在动态构建的有向无环图中记录操作,并支持通过支持的算术和激活操作(包括加法、乘法、幂运算、除法、减法和ReLU)进行反向传播。README将引擎和神经网络组件分别描述为约100行和50行代码,强调清晰性和教育用途,而非生产规模的张量性能。
该包可通过`pip install micrograd`安装。示例展示了如何从`Value`对象构建表达式、从`.data`读取前向传播结果、调用`backward()`以及通过`.grad`检查输入梯度。
包含的`micrograd.nn`模块提供了具有类似PyTorch接口的神经元、层和MLP风格构建块。`demo.ipynb`演示了使用最大间隔损失和SGD在月球数据集上训练一个两层多层感知器作为二元分类器。另一个笔记本`trace_graph.ipynb`使用Graphviz可视化计算节点,同时显示其值和梯度。
测试套件使用PyTorch作为参考实现来验证计算的梯度,并通过pytest运行。README还链接到一个外部microgpt示例,展示了如何使用相关的自动微分方法训练和采样类似GPT-2的Transformer。该项目根据MIT许可证发布。
评论
0 评分人数达到10人后显示
登录后参与讨论。