Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JuliaDiff/ChainRulesTestUtils.jl
Utilities for testing custom AD primitives.
https://github.com/JuliaDiff/ChainRulesTestUtils.jl
autodiff automatic-differentiation hacktoberfest
Last synced: 14 days ago
JSON representation
Utilities for testing custom AD primitives.
- Host: GitHub
- URL: https://github.com/JuliaDiff/ChainRulesTestUtils.jl
- Owner: JuliaDiff
- License: mit
- Created: 2020-01-22T16:56:20.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-08-06T01:43:22.000Z (3 months ago)
- Last Synced: 2024-10-07T04:06:30.948Z (about 1 month ago)
- Topics: autodiff, automatic-differentiation, hacktoberfest
- Language: Julia
- Homepage:
- Size: 1.39 MB
- Stars: 50
- Watchers: 10
- Forks: 15
- Open Issues: 72
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ChainRulesTestUtils.jl
[![CI](https://github.com/JuliaDiff/ChainRulesTestUtils.jl/workflows/CI/badge.svg?branch=main)](https://github.com/JuliaDiff/ChainRulesTestUtils.jl/actions?query=workflow%3ACI)
[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle)
[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor's%20Guide-blueviolet)](https://github.com/SciML/ColPrac)
[![DOI](https://zenodo.org/badge/235620344.svg)](https://zenodo.org/badge/latestdoi/235620344)[![](https://img.shields.io/badge/docs-main-blue.svg)](https://JuliaDiff.github.io/ChainRulesTestUtils.jl/dev)
[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://JuliaDiff.github.io/ChainRulesTestUtils.jl/stable)| ⚠️ The ChainRules project is currently seeking a new primary maintainer ⚠️ |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| See this [Discourse thread](https://discourse.julialang.org/t/chainrules-project-looking-for-a-new-primary-maintainer/115636). We currently have many secondary maintainers and contributors with commit rights, but noone who has committed to leading the efforts. Until this is resolved PRs and issues may not recieve timely response. |> Collection of utilities for testing forward- and reverse-mode AD sensitivities.
`ChainRulesTestUtils.jl` is designed to help you test `ChainRulesCore.frule` and `ChainRulesCore.rrule` methods.
The main entry points are `ChainRulesTestUtils.frule_test`, `ChainRulesTestUtils.rrule_test`, and `ChainRulesTestUtils.test_scalar`
Currently this is done via testing the rules against numerical differentiation (using [`FiniteDifferences.jl`](https://github.com/JuliaDiff/FiniteDifferences.jl)).`ChainRulesTestUtils.jl` is separate from [`ChainRulesCore.jl`](https://github.com/JuliaDiff/ChainRulesCore.jl) so that it can be a test-only dependency, allowing it to have potentially heavy dependencies, while keeping `ChainRulesCore.jl` as light-weight as possible.