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 視覺化工具,同時顯示數據和梯度。
  • 專注於教育: 專為教育目的而設計,用於演示二元分類和神經網路的基本構建模組。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案