Pyxu
Modular and scalable computational imaging in Python with GPU/out-of-core computing.
Install / Use
/learn @pyxu-org/PyxuREADME
.. image:: https://raw.githubusercontent.com/pyxu-org/pyxu/master/doc/_static/wide-logo.png :target: https://pyxu-org.github.io/ :alt: Pyxu logo
Pyxu: Modular and Scalable Computational Imaging
.. image:: https://img.shields.io/badge/Documentation-View-blue :target: https://pyxu-org.github.io/ :alt: Documentation .. image:: https://badge.fury.io/py/pyxu.svg :target: https://pypi.org/project/pyxu/ :alt: PyPI Version .. image:: https://img.shields.io/badge/Python-3.10%20|%203.11%20|%203.12-blue :target: https://www.python.org/downloads/ :alt: Python 3.10 | 3.11 | 3.12 .. image:: https://img.shields.io/badge/Part%20of-PyData-orange :target: https://pydata.org/ :alt: Part of PyData .. image:: https://img.shields.io/badge/License-MIT-yellow.svg :target: https://opensource.org/licenses/MIT :alt: License: MIT .. image:: https://img.shields.io/badge/Maturity-Production%2FStable-green.svg :target: https://www.python.org/dev/peps/pep-0008/ :alt: Maturity Level: Production/Stable .. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black :alt: Code style: black .. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?style=flat&logo=pre-commit&logoColor=white :target: https://pre-commit.com/ :alt: pre-commit enabled .. image:: https://img.shields.io/github/languages/code-size/pyxu-org/pyxu :alt: GitHub code size in bytes :target: https://github.com/pyxu-org/pyxu .. image:: https://img.shields.io/github/commit-activity/y/pyxu-org/pyxu :target: https://github.com/pyxu-org/pyxu/commits/main :alt: Number of Commits .. image:: https://img.shields.io/github/last-commit/pyxu-org/pyxu :target: https://github.com/pyxu-org/pyxu/commits :alt: Last Commit .. image:: https://img.shields.io/github/contributors/pyxu-org/pyxu :target: https://github.com/pyxu-org/pyxu/graphs/contributors :alt: Number of Contributors .. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg :target: https://github.com/pyxu-org/pyxu/pulls :alt: PRs Welcome .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4486431.svg :target: https://doi.org/10.5281/zenodo.4486431 .. image:: https://img.shields.io/badge/total%20downloads-7313-green.svg :target: https://www.pepy.tech/projects/pyxu :alt: Total PyPI downloads (Pycsou + Pyxu) .. image:: https://img.shields.io/pypi/dm/pyxu.svg :target: https://pypistats.org/packages/pyxu :alt: Monthly PyPI downloads
Pyxu (pronounced [piksu], formerly known as Pycsou) is an open-source Python framework allowing scientists at any level to quickly prototype/deploy hardware accelerated and out-of-core computational imaging pipelines at scale. Thanks to its microservice architecture and tight integration with the PyData ecosystem, Pyxu supports a wide range of imaging applications, scales, and computation architectures.
.. image:: https://raw.githubusercontent.com/pyxu-org/pyxu/master/doc/_static/banner.jpg :target: https://pyxu-org.github.io/examples/index.html :alt: Banner
What Makes Pyxu Special?
- Universal & Modular 🌐: Unlike other frameworks which are specialized for particular imaging types, Pyxu is a general-purpose computational imaging tool. No more wrestling with one-size-fits-all solutions that don't quite fit!
- Plug-and-Play Functionality 🎮: Craft imaging pipelines effortlessly with advanced operator algebra logic. Pyxu automates the tedious bits, like computing gradients, proximal operators, and computing hyperparameters.
- High-Performance Computing 🚀: Whether you're using CPUs or GPUs, Pyxu works with both. It employs
Duck arrays <https://numpy.org/neps/nep-0022-ndarray-duck-typing-overview.html>, just-in-time compilation viaNumba <https://numba.pydata.org/>, and relies onCuPy <https://cupy.dev/>_ andDask <https://dask.org/>_ for GPU/distributed computing needs. - Flexible & Adaptable 🛠️: Combat the common woes of software rigidity with Pyxu's ultra-flexible framework. Bayesian techniques requiring extensive software flexibility are a breeze here.
- Hardware Acceleration 🖥️: Leverage built-in support for hardware acceleration to ramp up your computational speed, all thanks to our module-agnostic codebase.
- Distributed Computing 🔗: Got a lot of data? No worries! Pyxu works at scale and is easily deployable on
institutional clusters using industry-standard technologies like
Kubernetes <https://kubernetes.io/>_ andDocker <https://www.docker.com/>_. - Deep Learning Interoperability 🤖: Integrate with major deep learning frameworks like
PyTorch <https://pytorch.org/>_ andJAX <https://jax.readthedocs.io/en/latest/jax.html>_ for state-of-the-art computational imaging techniques.
Why is Pyxu Necessary?
In the realm of computer vision 📷, digital image restoration and enhancement techniques have established themselves as indispensable pillars. These techniques, aiming to restore and elevate the quality of degraded or partially observed images, have witnessed unprecedented progress 📈 in recent times. Thanks to potent image priors, we've now reached an era where image restoration and enhancement methods are incredibly advanced ✨ —so much so that we might be approaching a pinnacle in terms of performance and accuracy.
However, it's not all roses 🌹.
Despite their leaps in progress, advanced image reconstruction methods often find themselves trapped in a vicious cycle of limited adaptability, usability, and reproducibility. Many advanced computational imaging solutions, while effective, are tailored for specific use-cases and seldom venture beyond the confines of a proof-of-concept 🚧. These niche solutions demand deep expertise to customize and deploy, making their adoption in production pipelines challenging.
In essence, the imaging domain is desperately seeking what the deep learning community found in frameworks like PyTorch <https://pytorch.org/>, TensorFlow <https://www.tensorflow.org/>, or Keras <https://keras.io/>_ —a flexible,
modular, and powerful environment that accelerates the adoption of cutting-edge methods in real-world settings. Pyxu
stands as an answer to this call: a groundbreaking, open-source computational imaging software framework tailored for
Python enthusiasts 🐍.
Basic Installation
The core of Pyxu is lightweight and straightforward to install. You'll need Python (>= 3.10, < 3.13) and a few
mandatory dependencies. While these dependencies will be automatically installed via pip, we highly recommend
installing NumPy and SciPy via conda to benefit from optimized math libraries.
First, to install NumPy and SciPy from conda-forge:
.. code-block:: bash
conda install -c conda-forge numpy scipy
And then install Pyxu:
.. code-block:: bash
pip install pyxu
That's it for the basic installation; you're ready to go! Check out the install guide <https://pyxu-org.github.io/intro/installation.html>_ for instructions on how to build from source, or for more
advanced options.
Comparison with other Frameworks
Pyxu offers a comprehensive suite of algorithms, including the latest primal-dual splitting methods for nonsmooth optimization. The feature set is robust and mature, positioning it as a leader in the computational imaging arena.
.. list-table:: Feature Maturity - Comparison :header-rows: 1 :stub-columns: 1 :widths: auto
* - Package Name 📦
- Operator Types 🛠️
- Operator Algebra 🎯
- Algorithmic Suite 📚
- Application Focus 🎯
- Remarks 💬
* - PyLops
- 🔴 Linear oeprators
- 🟡 Partial
- 🔴 Least-squares & sparse reconstructions
- 🟡 Wave-processing, geophysics
- 🔴 Linear operators based on NumPy's old matrix interface
* - PyProximal
- 🔴 Proximable functionals
- 🔴 None
- 🔴 Non-smooth convex optimization
- 🟢 None
- 🔴 Under early development, unstable API
* - Operator Discretization Library (ODL)
- 🟢 (Non)linear operators, differentiable/proximable functionals
- 🟢 Full
- 🟢 Smooth, non-smooth & hybrid (non-)convex optimization
- 🟢 None
- 🔴 Domain-specific language for mathematicians
* - GlobalBioIm
- 🟢 (Non)linear operators, differentiable/proximable functionals
- 🟢 Full
- 🟢 Smooth, non-smooth & hybrid convex optimization
- 🟢 None
- 🔴 MATLAB-based, unlike most DL frameworks
* - SigPy
- 🟡 Linear operators, proximable functionals
- 🟡 Partial
- 🟡 Smooth & non-smooth convex optimization
- 🔴 MRI
- 🔴 Very limited suite of operators, functionals, and algorithms
* - SCICO
- 🟢 (Non)linear operators, differentiable/proximable functionals
- 🟢 Full
- 🟢 Smooth, non-smooth & hybrid (non-)convex optimization
- 🟢 None
- 🟡 JAX-based (pure functions only, no mutation, etc.)
* - DeepInv
- 🟢 (Non)linear operators, differentiable/proximable functionals
- 🟡 Partial
- 🟢 Smooth, non-smooth & hybrid (non-)convex optimization
- 🟡 Deep Learning
- 🟡 PyTorch-based (lots of dependencies)
* - Pyxu
- 🟢 (Non)linear operators, differentiable/proximable functionals
- 🟢 Full
- 🟢 Smooth, non-smooth & hybrid (non-)convex optimization
- 🟢 None
- 🟢 Very rich suite of operators, functionals, algorithms & HPC features
Pyxu is unique in supporting both out-of-core and distributed computing. Additionally, it offers robust support for JIT compilation and GPU computing via Numba and CuPy respectively. Most contenders either offer partial support or lack these features altogether.
.. list-table:: HPC Features - Comparison :heade
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
mentoring-juniors
Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.
groundhog
399Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
