Skip to main content

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

Project description

caskade

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.

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.0.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

caskade-0.0.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for caskade-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ad26144fcf928ef3abde1ff5ffb03bf437504ec0121eaf63328d3aa4bc9345b8
MD5 32c6b05a75c5438c76c39c5f4fc9c57f
BLAKE2b-256 ec211070895aa1962fe712b31ca7e3fa2704e824ba1f8208710888b6eab7ccc4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: caskade-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.2 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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 68fd6877f262a5b8f4c4025448582072eaa28d1ef6ca961e80a928cee5cf553c
MD5 89e070e96d2bed740edcc114fdda1d19
BLAKE2b-256 9b28f65fa7a630a25ab2a307c822e6e7b5f6f17ab55b404ecc7d1124b48c639c

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