Skip to main content
PyPI version Documentation Status=================== Gitlab CI https://travis-ci.org/theHamsta/pystencils_autodiff.svg?branch=master https://codecov.io/gh/theHamsta/pystencils_autodiff/branch/master/graph/badge.svg

pystencils_autodiff

This repo adds automatic differentiation to pystencils.

Installation

Install via pip:

pip install pystencils-autodiff

or if you downloaded this repository using:

pip install -e .

Then, you can access the submodule pystencils.autodiff.

import pystencils.autodiff

Usage

Create a pystencils.AssignmentCollection with pystencils:

import sympy
import pystencils

z, y, x = pystencils.fields("z, y, x: [20,30]")

forward_assignments = pystencils.AssignmentCollection({
    z[0, 0]: x[0, 0] * sympy.log(x[0, 0] * y[0, 0])
})

print(forward_assignments)
Subexpressions:
Main Assignments:
     z[0,0] ← x_C*log(x_C*y_C)

You can then obtain the corresponding backward assignments:

from pystencils.autodiff import AutoDiffOp, create_backward_assignments
backward_assignments = create_backward_assignments(forward_assignments)

print(backward_assignments)

You can see the derivatives with respective to the two inputs multiplied by the gradient diffz_C of the output z_C.

Subexpressions:
Main Assignments:
    \hat{x}[0,0] ← diffz_C*(log(x_C*y_C) + 1)
    \hat{y}[0,0] ← diffz_C*x_C/y_C

You can also use the class AutoDiffOp to obtain both the assignments (if you are curious) and auto-differentiable operations for Tensorflow…

op = AutoDiffOp(forward_assignments)
backward_assignments = op.backward_assignments

tensorflow_op = op.create_tensorflow_op(backend='tensorflow_native', use_cuda=True)

… or Torch:

torch_op = op.create_tensorflow_op(backend='torch_native', use_cuda=True)

Test Report and Coverage

Metadata

Release files for pystencils-autodiff 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pystencils-autodiff 0.3.3
File Size Uploaded Provenance Actions
pystencils_autodiff-0.3.3.tar.gz 68.2 kB Without provenance Details for pystencils_autodiff-0.3.3.tar.gz

Release files / pystencils_autodiff-0.3.3.tar.gz

Download URL pystencils_autodiff-0.3.3.tar.gz
Size 68.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7ab2dc27bd3a173367fcbc6b9a91c5fa85193119706160d1f731d6ae11ab22e4
BLAKE2b-256 checksum
How to use checksums
6ff64e042cb4e28484c531be6e422136f3541c759a7a666f4c7a41120673d880
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.6

Security for pystencils-autodiff 0.3.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page