# hips/autograd

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hips-autograd).**

7,458 stars · 938 forks · Python · mit

## Links

- GitHub: https://github.com/HIPS/autograd
- awesome-repositories: https://awesome-repositories.com/repository/hips-autograd.md

## Description

Autograd is an automatic differentiation library and numerical gradient engine for Python. Its primary purpose is to compute the gradients of mathematical functions to enable numerical optimization and the training of mathematical models.

The library automates the calculation of derivatives to simplify the implementation of optimization algorithms. This supports activities such as machine learning research, gradient-based learning, and the optimization of numerical models.

## Tags

### Artificial Intelligence & ML

- [Gradient Computation](https://awesome-repositories.com/f/artificial-intelligence-ml/gradient-computation.md) — Provides tools for calculating function gradients to support numerical model training and optimization. ([source](https://cdn.jsdelivr.net/gh/hips/autograd@master/README.md))
- [Automatic Differentiation Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/automatic-differentiation-engines.md) — Provides a system that computes gradients of mathematical functions by traversing computational graphs.
- [Automatic Differentiation Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/automatic-differentiation-frameworks.md) — Serves as a comprehensive engine for computing exact gradients and higher-order derivatives.
- [Computational Graph Tracking](https://awesome-repositories.com/f/artificial-intelligence-ml/computational-graph-tracking.md) — Implements a system for recording mathematical operations in a graph to enable backward traversal for gradient computation.
- [Reverse-Mode Differentiation](https://awesome-repositories.com/f/artificial-intelligence-ml/reverse-mode-differentiation.md) — Implements reverse-mode automatic differentiation by traversing the computational graph backwards using the chain rule.
- [Gradient-Based Learning](https://awesome-repositories.com/f/artificial-intelligence-ml/gradient-based-learning.md) — Supports the implementation of learning algorithms that require precise gradients for updating weights.

### Scientific & Mathematical Computing

- [Derivative Calculators](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-libraries-and-utilities/mathematical-libraries/mathematical-function-implementations/derivative-calculators.md) — Provides utility for computing partial derivatives and gradients of complex mathematical functions.
- [Numerical Optimization Tools](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-optimization-tools.md) — Automates the calculation of gradients to simplify the implementation of numerical optimization algorithms in Python.
- [Numerical Parameter Optimization](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-parameter-optimization.md) — Enables finding the minimum or maximum of complex mathematical functions to optimize scientific models.

### Software Engineering & Architecture

- [Gradient](https://awesome-repositories.com/f/software-engineering-architecture/dependency-tracking/gradient.md) — Stores references to parent tensors and gradient functions at each step to enable recursive backpropagation.
- [Gradient Evaluation](https://awesome-repositories.com/f/software-engineering-architecture/lazy-evaluation-patterns/gradient-evaluation.md) — Defers the numerical calculation of derivatives until an explicit backward call is triggered on a scalar.

### Programming Languages & Runtimes

- [Operator Overloading](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/core-conceptual-frameworks/programming-language-concepts/method-definitions/operator-overloading.md) — Redefines standard mathematical operators to automatically register nodes and edges within the computational graph.

### Part of an Awesome List

- [Deep Learning](https://awesome-repositories.com/f/awesome-lists/ai/deep-learning.md) — Efficient automatic differentiation for numerical code.
