Skip to main content

A library independent forward pass inspector for neural nets

Project description

Clouseau: the forward pass inspector

Release Build status codecov Commit activity License

Clouseau Banner

A library independent forward pass inspector for neural nets. The tool is designed to be used with PyTorch and Jax (others libraries might come later...). It allows you to register hooks for the forward pass of a model, and write the forward pass activations to a file for later inspection. It is useful for debugging models or transitioning models from one framework to another and checking their equivalence at any stage.

Installation

pip install clouseau

Usage

Jax / Equinox Example

You can use the inspector as a context manager to record the forward pass of a model. The following example shows how to use the inspector with a model from the Equinox library:

import jax
import equinox as eqx
from clouseau import inspector

keys = jax.random.split(jax.random.PRNGKey(918832), 3)

model = eqx.nn.Sequential([
    eqx.nn.Linear(764, 100, keys[0]),
    jax.nn.relu,
    eqx.nn.Linear(100, 50, keys[0]),
    jax.nn.relu,
    eqx.nn.Linear(50, 10, keys[0]),
    jax.nn.sigmoid,
])
x = jax.random.normal(jax.random.PRNGKey(0), (764,))

with inspector.tail(model, path="activations.safetensors") as m:
    m(x)

Then in an interactive session inspect the recorded activations:

from clouseau import inspector

inspector.magnify("activations.safetensors")

Which will open the file and generate a hierachical treescope view of the activations.

PyTorch Example

from torch import nn
from clouseau import inspector

model = nn.Sequential({
    "dense1": nn.Linear(764, 100),
    "act1": nn.ReLU(),
    "dense2": nn.Linear(100, 50),
    "act2": nn.ReLU(),
    "output": nn.Linear(50, 10),
    "outact": nn.Sigmoid(),
})

x = torch.randn((764,))

with inspector.tail(model) as m:
    m(x)

For more advanced usage including filtering layer types, please refer to the documentation.

Project details


Release history Release notifications | RSS feed

This version

0.2

Download files

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

Source Distribution

clouseau-0.2.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clouseau-0.2-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file clouseau-0.2.tar.gz.

File metadata

  • Download URL: clouseau-0.2.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for clouseau-0.2.tar.gz
Algorithm Hash digest
SHA256 41857c84304ac9a49b605a08d47ead5f5f8ecdec3d40ae984a43610d3feec947
MD5 ef2cba0c735d351f6f6499390fd47942
BLAKE2b-256 c2abb6a398d978295171904f8cf455a04c84be5b0840e9cd24cdb2b1beb01328

See more details on using hashes here.

File details

Details for the file clouseau-0.2-py3-none-any.whl.

File metadata

  • Download URL: clouseau-0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for clouseau-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7d67f0fadfb1705d1cb95c1bf4f1c77e6431fe821d8a3142065a2c6876ff101c
MD5 9f77338a98264c30c434f6cc18f99137
BLAKE2b-256 f934d1a68690921065102576bf9a6314f5954d100ac0d6b432d7956d14281de5

See more details on using hashes here.

Supported by

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