Skip to main content

Package for building scientific simulators, with dynamic arguments arranged in a directed acyclic graph.

Project description

caskade

CI CD codecov PyPI - Version Documentation Status

Build scientific simulators, treating them as a directed acyclic graph. Handles argument passing for complex nested simulators.

Install

pip install caskade

Usage

Make a Module object which may have some Params. Define a forward method using the decorator.

from caskade import Module, Param, forward

class MySim(Module):
    def __init__(self, a, b=None):
        super().__init__()
        self.a = a
        self.b = Param("b", b)

    @forward
    def myfun(self, x, b=None):
        return x + self.a + b

We may now create instances of the simulator and pass the dynamic parameters.

import torch

sim = MySim(1.0)

params = [torch.tensor(2.0)]

print(sim.myfun(3.0, params=params))

Which will print 6 by automatically filling b with the value from params.

Why do this?

The above example is not very impressive, the real power comes from the fact that Module objects can be nested arbitrarily making a much more complicated analysis graph. Further, the Param objects can be linked or have other complex relationships. All of the complexity of the nested structure and argument passing is abstracted away so that at the top one need only pass a list of tensors for each parameter, a single large 1d tensor, or a dictionary with the same structure as the graph.

Documentation

The caskade interface has lots of flexibility, check out the docs to learn more. For a quick start, jump right to the Jupyter notebook tutorial!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caskade-0.4.2.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

caskade-0.4.2-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file caskade-0.4.2.tar.gz.

File metadata

  • Download URL: caskade-0.4.2.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for caskade-0.4.2.tar.gz
Algorithm Hash digest
SHA256 911e3d8e6b6072c2564f9297b1eb38b942dec6cb4bb47e1c68a96aec0caf429d
MD5 34ee7b2c438a919bd2f9c684b21933e7
BLAKE2b-256 97ad10c4b78a1d3675074311e62599ffbaa24f1bd17cb4360ec59a8674c71d3e

See more details on using hashes here.

File details

Details for the file caskade-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: caskade-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for caskade-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9cd33168bfceeac267a4d3c6014a4afb2d1e290eb8b73d34717ee6338f020a31
MD5 67636e89187e798dc3aa4e8e4596bc65
BLAKE2b-256 a18b4cd07d32c163048f53a5a1b8fa1c092a8ac75dcf45080363af72d1f30f36

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page