Skip to main content

simlx

Release Build status codecov Commit activity License

self supervised representation learning

Getting started with your project

1. Create a New Repository

First, create a repository on GitHub with the same name as this project, and then run the following commands:

git init -b main
git add .
git commit -m "init commit"
git remote add origin git@github.com:phzwart/simlx.git
git push -u origin main

2. Set Up Your Development Environment

Then, install the environment and the pre-commit hooks with

make install

This will also generate your uv.lock file

3. Run the pre-commit hooks

Initially, the CI/CD pipeline might be failing due to formatting issues. To resolve those run:

uv run pre-commit run -a

4. Commit the changes

Lastly, commit the changes made by the two steps above to your repository.

git add .
git commit -m 'Fix formatting issues'
git push origin main

You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPI, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.

Random Gaussian Projection Heads

Matryoshka U-Net now supports non-parameterized Gaussian projection heads that resample a batch-level projection matrix on every forward pass during training. Enable them with MatryoshkaUNetConfig.use_random_projections=True to obtain fast stochastic regularization (projection generation is roughly 1000× faster than QR-based alternatives).

import torch
from simlx.models.matryoshka_unet import MatryoshkaUNet, MatryoshkaUNetConfig
from simlx.models.projection_utils import (
    analyze_projection_quality,
    compute_svd_projections,
    replace_random_projections,
)

# Stage 1: train with random projections
config = MatryoshkaUNetConfig(use_random_projections=True, in_channels=3, spatial_dims=2)
model = MatryoshkaUNet(config=config).train()

# Stage 2: optionally distill projections with SVD
svd_weights = compute_svd_projections(model, train_loader, device=torch.device("cuda"))
replace_random_projections(model, svd_weights)
model.eval()

# Stage 3: inspect projection quality
metrics = analyze_projection_quality(model, val_loader)
print(metrics["bottleneck"]["variance_explained"])

After calling replace_random_projections, the heads become deterministic and can be shipped alongside the trained weights (call MatryoshkaUNet.eval() before exporting).

Releasing a new version

  • Create an API Token on PyPI.
  • Add the API Token to your projects secrets with the name PYPI_TOKEN by visiting this page.
  • Create a new release on Github.
  • Create a new tag in the form *.*.*.

For more details, see here.


Repository initiated with fpgmaas/cookiecutter-uv.

Release files for simlx 0.1.0

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

Source distribution (sdist)

Source distribution for simlx 0.1.0
File Size Uploaded
simlx-0.1.0.tar.gz 175.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simlx 0.1.0
File Interpreter ABI Platform
simlx-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 209.0 kB

Release files / simlx-0.1.0.tar.gz

Download URL simlx-0.1.0.tar.gz
Size 175.1 kB
Tags Source
SHA-256 checksum
How to use checksums
075ff35eb3cac96898e3e6263df6d0bf4dce2272353b7fa1ba08f84c46309ff6
BLAKE2b-256 checksum
How to use checksums
6437d781f46a427004e86199fd57e37e6d3fe3487f9d1306e904fb424bcab26e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.7

Release files / simlx-0.1.0-py3-none-any.whl

Download URL simlx-0.1.0-py3-none-any.whl
Size 33.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9abe550677c315eeb4a47a279a46d00e398411f5dacee15a0f8a50978f79db66
BLAKE2b-256 checksum
How to use checksums
579b493b1b3673b6f7db16699f601603551558993ededac3b61a61c736603f70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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