Skip to main content

Differentiable Optical Models as Parameterised Neural Networks in Jax using Zodiax.

Project description

alt text

∂Lux

PyPI version License integration Documentation

Differentiable Optical Models as Parameterised Neural Networks in Jax using Zodiax

Contributors: Louis Desdoigts, Jordan Dennis, Adam Taras, Max Charles, Connor Langford, Benjamin Pope, Peter Tuthill

∂Lux is an open-source differentiable optical modelling framework harnessing the structural isomorphism between optical systems and neural networks, giving forwards models of optical systems as parametric neural networks.

∂Lux is built in Zodiax, which is an open-source object-oriented Jax framework built as an extension of Equinox for scientific programming. This framework allows for the creation of complex optical systems involving many planes, phase and amplitude screens in each, and propagates between them in the Fraunhofer or Fresnel regimes. This enables fast phase retrieval, image deconvolution, and hardware design in high dimensions. Because ∂Lux models are fully differentiable, you can optimize them by gradient descent over millions of parameters; or use Hamiltonian Monte Carlo to accelerate MCMC sampling. Our code is fully open-source under a 3-clause BSD license, and we encourage you to use it and build on it to solve problems in astronomy and beyond.

The ∂Lux framework is built in Zodiax, which gives it a deep range of capabilities from both Jax and Equinox:

For an overview of these capabilities and different optimisation methods in Zodiax, please go through this Zodiax Tutorial.

Documentation: https://louisdesdoigts.github.io/dLux/

Requires: Python 3.10+, Jax 0.4.13+, Zodiax 0.4+

Installation: pip install dLux

If you want to run the tutorials locally, you can install the 'extra' dependencies like so: pip install 'dLux[extras]'

Collaboration & Development

We are always looking to collaborate and further develop this software! We have focused on flexibility and ease of development, so if you have a project you want to use ∂Lux for, but it currently does not have the required capabilities, have general questions, thoughts or ideas, don't hesitate to email me or contact me on twitter! More details about contributing can be found in our contributing guide.

Publications

We have a multitude of publications in the pipeline using dLux, some built from our tutorials. To start we would recommend looking at this invited talk on ∂Lux which gives a good overview and has an attached recording of it being presented! We also have this poster!

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

dlux-0.14.1.tar.gz (62.9 kB view details)

Uploaded Source

Built Distribution

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

dlux-0.14.1-py3-none-any.whl (68.9 kB view details)

Uploaded Python 3

File details

Details for the file dlux-0.14.1.tar.gz.

File metadata

  • Download URL: dlux-0.14.1.tar.gz
  • Upload date:
  • Size: 62.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for dlux-0.14.1.tar.gz
Algorithm Hash digest
SHA256 2d6f209768133bea77bbc86ec7bb9464817f00e28ff08adb3d1d009269d0ab72
MD5 5e51db8bd8c5b277fd8f3195b81dbead
BLAKE2b-256 fd1750137ddb6c8b67fce9ba7cab25d1e49091f7b055c7c24410effbce3ad1b4

See more details on using hashes here.

File details

Details for the file dlux-0.14.1-py3-none-any.whl.

File metadata

  • Download URL: dlux-0.14.1-py3-none-any.whl
  • Upload date:
  • Size: 68.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for dlux-0.14.1-py3-none-any.whl
Algorithm Hash digest
SHA256 17ed5b33f7fe47ffe25b9877f98451663885bd082a4fb72e724406bda092ccef
MD5 c63ccf6fe8c09e30a04739c75aa6d505
BLAKE2b-256 4b9d0d6f10de816b439c09d5e9725a9c68bde9fe12573a3d8e9c76053cc7d3e5

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