Functional Models and Algorithms for Sparse Signal Processing
==================================================================
|pypi| |license| |zenodo| |docs| |unit_tests| |coverage| |joss|
Introduction
-------------------
CR-Sparse is a Python library that enables efficiently solving
a wide variety of sparse representation based signal processing problems.
It is a cohesive collection of sub-libraries working together. Individual
sub-libraries provide functionalities for:
wavelets, linear operators, greedy and convex optimization
based sparse recovery algorithms, subspace clustering,
standard signal processing transforms,
and linear algebra subroutines for solving sparse linear systems.
It has been built using `Google JAX <https://jax.readthedocs.io/en/latest/>`_,
which enables the same high level
Python code to get efficiently compiled on CPU, GPU and TPU architectures
using `XLA <https://www.tensorflow.org/xla>`_.
.. image:: docs/images/srr_cs.png
For detailed documentation and usage, please visit `online docs <https://cr-sparse.readthedocs.io/en/latest>`_.
For theoretical background, please check online notes at `Topics in Signal Processing <https://tisp.indigits.com>`_
and references therein (still under development).
``CR-Sparse`` is part of
`CR-Suite <https://carnotresearch.github.io/cr-suite/>`_.
Related libraries:
* `CR-Nimble <https://cr-nimble.readthedocs.io>`_
* `CR-Wavelets <https://cr-wavelets.readthedocs.io>`_
Supported Platforms
----------------------
``CR-Sparse`` can run on any platform supported by ``JAX``.
We have tested ``CR-Sparse`` on Mac and Linux platforms and Google Colaboratory.
* The latest code in the library has been tested against JAX 0.3.14.
* The last released version of CR-Sparse (0.2.2) was tested against JAX 0.1.55 and later JAX 0.1.x versions.
``JAX`` is not officially supported on Windows platforms at the moment.
Although, it is possible to build it from source using Windows Subsystems for Linux.
Alternatively, you can check out the community supported Windows build for JAX
available from https://github.com/cloudhan/jax-windows-builder.
This seems to work well and all the unit tests in the library have passed
on Windows also.
Installation
-------------------------------
Installation from PyPI:
.. code:: shell
python -m pip install cr-sparse
Directly from our GITHUB repository:
.. code:: shell
python -m pip install git+https://github.com/carnotresearch/cr-sparse.git
Examples/Usage
----------------
See the `examples gallery <https://cr-sparse.readthedocs.io/en/latest/gallery/index.html>`_ in the documentation.
Here is a small selection of examples:
* `Sparse recovery using Truncated Newton Interior Points Method <https://cr-sparse.readthedocs.io/en/latest/gallery/rec_l1/spikes_l1ls.html>`_
* `Sparse recovery with ADMM <https://cr-sparse.readthedocs.io/en/latest/gallery/rec_l1/partial_wh_sensor_cosine_basis.html>`_
* `Compressive sensing operators <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/cs_operators.html>`_
* `Image deblurring with LSQR and FISTA algorithms <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/deblurring.html>`_
* `Deconvolution of the effects of a Ricker wavelet <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/deconvolution.html>`_
* `Wavelet transform operators <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/wt_op.html>`_
* `CoSaMP step by step <https://cr-sparse.readthedocs.io/en/latest/gallery/pursuit/cosamp_step_by_step.html>`_
A more extensive collection of example notebooks is available in the `companion repository <https://github.com/carnotresearch/cr-sparse-companion>`_.
Some micro-benchmarks are reported `here <https://github.com/carnotresearch/cr-sparse/blob/master/paper/paper.md#runtime-comparisons>`_.
Contribution Guidelines/Code of Conduct
----------------------------------------
* `Contribution Guidelines <CONTRIBUTING.md>`_
* `Code of Conduct <CODE_OF_CONDUCT.md>`_
Citing CR-Sparse
------------------------
To cite this library:
.. code:: tex
@article{Kumar2021,
doi = {10.21105/joss.03917},
url = {https://doi.org/10.21105/joss.03917},
year = {2021},
publisher = {The Open Journal},
volume = {6},
number = {68},
pages = {3917},
author = {Shailesh Kumar},
title = {CR-Sparse: Hardware accelerated functional algorithms for sparse signal processing in Python using JAX},
journal = {Journal of Open Source Software}
}
`Documentation <https://carnotresearch.github.io/cr-sparse>`_ |
`Code <https://github.com/carnotresearch/cr-sparse>`_ |
`Issues <https://github.com/carnotresearch/cr-sparse/issues>`_ |
`Discussions <https://github.com/carnotresearch/cr-sparse/discussions>`_ |
.. |docs| image:: https://readthedocs.org/projects/cr-sparse/badge/?version=latest
:target: https://cr-sparse.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
:scale: 100%
.. |unit_tests| image:: https://github.com/carnotresearch/cr-sparse/actions/workflows/ci.yml/badge.svg
:alt: Unit Tests
:scale: 100%
:target: https://github.com/carnotresearch/cr-sparse/actions/workflows/ci.yml
.. |pypi| image:: https://badge.fury.io/py/cr-sparse.svg
:alt: PyPI cr-sparse
:scale: 100%
:target: https://badge.fury.io/py/cr-sparse
.. |coverage| image:: https://codecov.io/gh/carnotresearch/cr-sparse/branch/master/graph/badge.svg?token=JZQW6QU3S4
:alt: Coverage
:scale: 100%
:target: https://codecov.io/gh/carnotresearch/cr-sparse
.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
:alt: License
:scale: 100%
:target: https://opensource.org/licenses/Apache-2.0
.. |codacy| image:: https://app.codacy.com/project/badge/Grade/36905009377e4a968124dabb6cd24aae
:alt: Codacy Badge
:scale: 100%
:target: https://www.codacy.com/gh/carnotresearch/cr-sparse/dashboard?utm_source=github.com&utm_medium=referral&utm_content=carnotresearch/cr-sparse&utm_campaign=Badge_Grade
.. |zenodo| image:: https://zenodo.org/badge/323566858.svg
:alt: DOI
:scale: 100%
:target: https://zenodo.org/badge/latestdoi/323566858
.. |joss| image:: https://joss.theoj.org/papers/ebd4e5ca27a5db705b1dc382b64e0bed/status.svg
:alt: JOSS
:scale: 100%
:target: https://joss.theoj.org/papers/ebd4e5ca27a5db705b1dc382b64e0bed
Raw data
{
"_id": null,
"home_page": "https://carnotresearch.github.io/cr-sparse",
"name": "cr-sparse",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "Computer Vision",
"author": "CR-Suite Development Team",
"author_email": "contact@carnotresearch.com",
"download_url": "https://files.pythonhosted.org/packages/c9/8e/d01f3087dbd1b144e0ddadf23bb4d0cac0821c7e954ae704062b0d884733/cr-sparse-0.3.2.tar.gz",
"platform": null,
"description": "Functional Models and Algorithms for Sparse Signal Processing \n==================================================================\n\n\n|pypi| |license| |zenodo| |docs| |unit_tests| |coverage| |joss|\n\n\nIntroduction\n-------------------\n\n\nCR-Sparse is a Python library that enables efficiently solving\na wide variety of sparse representation based signal processing problems.\nIt is a cohesive collection of sub-libraries working together. Individual\nsub-libraries provide functionalities for:\nwavelets, linear operators, greedy and convex optimization \nbased sparse recovery algorithms, subspace clustering, \nstandard signal processing transforms,\nand linear algebra subroutines for solving sparse linear systems. \nIt has been built using `Google JAX <https://jax.readthedocs.io/en/latest/>`_, \nwhich enables the same high level\nPython code to get efficiently compiled on CPU, GPU and TPU architectures\nusing `XLA <https://www.tensorflow.org/xla>`_. \n\n.. image:: docs/images/srr_cs.png\n\nFor detailed documentation and usage, please visit `online docs <https://cr-sparse.readthedocs.io/en/latest>`_.\n\nFor theoretical background, please check online notes at `Topics in Signal Processing <https://tisp.indigits.com>`_\nand references therein (still under development).\n\n``CR-Sparse`` is part of\n`CR-Suite <https://carnotresearch.github.io/cr-suite/>`_.\n\nRelated libraries:\n\n* `CR-Nimble <https://cr-nimble.readthedocs.io>`_\n* `CR-Wavelets <https://cr-wavelets.readthedocs.io>`_\n\n\nSupported Platforms\n----------------------\n\n``CR-Sparse`` can run on any platform supported by ``JAX``. \nWe have tested ``CR-Sparse`` on Mac and Linux platforms and Google Colaboratory.\n\n* The latest code in the library has been tested against JAX 0.3.14.\n* The last released version of CR-Sparse (0.2.2) was tested against JAX 0.1.55 and later JAX 0.1.x versions. \n\n``JAX`` is not officially supported on Windows platforms at the moment. \nAlthough, it is possible to build it from source using Windows Subsystems for Linux.\nAlternatively, you can check out the community supported Windows build for JAX\navailable from https://github.com/cloudhan/jax-windows-builder.\nThis seems to work well and all the unit tests in the library have passed\non Windows also. \n\nInstallation\n-------------------------------\n\nInstallation from PyPI:\n\n.. code:: shell\n\n python -m pip install cr-sparse\n\nDirectly from our GITHUB repository:\n\n.. code:: shell\n\n python -m pip install git+https://github.com/carnotresearch/cr-sparse.git\n\n\n\nExamples/Usage\n----------------\n\nSee the `examples gallery <https://cr-sparse.readthedocs.io/en/latest/gallery/index.html>`_ in the documentation.\nHere is a small selection of examples:\n\n* `Sparse recovery using Truncated Newton Interior Points Method <https://cr-sparse.readthedocs.io/en/latest/gallery/rec_l1/spikes_l1ls.html>`_ \n* `Sparse recovery with ADMM <https://cr-sparse.readthedocs.io/en/latest/gallery/rec_l1/partial_wh_sensor_cosine_basis.html>`_ \n* `Compressive sensing operators <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/cs_operators.html>`_ \n* `Image deblurring with LSQR and FISTA algorithms <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/deblurring.html>`_ \n* `Deconvolution of the effects of a Ricker wavelet <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/deconvolution.html>`_ \n* `Wavelet transform operators <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/wt_op.html>`_ \n* `CoSaMP step by step <https://cr-sparse.readthedocs.io/en/latest/gallery/pursuit/cosamp_step_by_step.html>`_ \n\n\nA more extensive collection of example notebooks is available in the `companion repository <https://github.com/carnotresearch/cr-sparse-companion>`_.\nSome micro-benchmarks are reported `here <https://github.com/carnotresearch/cr-sparse/blob/master/paper/paper.md#runtime-comparisons>`_.\n\n\nContribution Guidelines/Code of Conduct\n----------------------------------------\n\n* `Contribution Guidelines <CONTRIBUTING.md>`_\n* `Code of Conduct <CODE_OF_CONDUCT.md>`_\n\nCiting CR-Sparse\n------------------------\n\n\nTo cite this library:\n\n.. code:: tex\n\n @article{Kumar2021,\n doi = {10.21105/joss.03917},\n url = {https://doi.org/10.21105/joss.03917},\n year = {2021},\n publisher = {The Open Journal},\n volume = {6},\n number = {68},\n pages = {3917},\n author = {Shailesh Kumar},\n title = {CR-Sparse: Hardware accelerated functional algorithms for sparse signal processing in Python using JAX},\n journal = {Journal of Open Source Software}\n }\n\n\n\n\n`Documentation <https://carnotresearch.github.io/cr-sparse>`_ | \n`Code <https://github.com/carnotresearch/cr-sparse>`_ | \n`Issues <https://github.com/carnotresearch/cr-sparse/issues>`_ | \n`Discussions <https://github.com/carnotresearch/cr-sparse/discussions>`_ |\n\n\n.. |docs| image:: https://readthedocs.org/projects/cr-sparse/badge/?version=latest\n :target: https://cr-sparse.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n :scale: 100%\n\n.. |unit_tests| image:: https://github.com/carnotresearch/cr-sparse/actions/workflows/ci.yml/badge.svg\n :alt: Unit Tests\n :scale: 100%\n :target: https://github.com/carnotresearch/cr-sparse/actions/workflows/ci.yml\n\n\n.. |pypi| image:: https://badge.fury.io/py/cr-sparse.svg\n :alt: PyPI cr-sparse\n :scale: 100%\n :target: https://badge.fury.io/py/cr-sparse\n\n.. |coverage| image:: https://codecov.io/gh/carnotresearch/cr-sparse/branch/master/graph/badge.svg?token=JZQW6QU3S4\n :alt: Coverage\n :scale: 100%\n :target: https://codecov.io/gh/carnotresearch/cr-sparse\n\n\n.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg\n :alt: License\n :scale: 100%\n :target: https://opensource.org/licenses/Apache-2.0\n\n.. |codacy| image:: https://app.codacy.com/project/badge/Grade/36905009377e4a968124dabb6cd24aae\n :alt: Codacy Badge\n :scale: 100%\n :target: https://www.codacy.com/gh/carnotresearch/cr-sparse/dashboard?utm_source=github.com&utm_medium=referral&utm_content=carnotresearch/cr-sparse&utm_campaign=Badge_Grade\n\n.. |zenodo| image:: https://zenodo.org/badge/323566858.svg\n :alt: DOI\n :scale: 100%\n :target: https://zenodo.org/badge/latestdoi/323566858\n\n.. |joss| image:: https://joss.theoj.org/papers/ebd4e5ca27a5db705b1dc382b64e0bed/status.svg\n :alt: JOSS\n :scale: 100%\n :target: https://joss.theoj.org/papers/ebd4e5ca27a5db705b1dc382b64e0bed\n\n\n",
"bugtrack_url": null,
"license": "Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0",
"summary": "Accelerated sparse representations and compressive sensing",
"version": "0.3.2",
"split_keywords": [
"computer",
"vision"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "36b57e72d883e964bd117692b4990f0c",
"sha256": "12ffd61f7cd09acd43ae647eecb924e7f193f76aff1e8782381260ca6a02d85e"
},
"downloads": -1,
"filename": "cr_sparse-0.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "36b57e72d883e964bd117692b4990f0c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 222549,
"upload_time": "2022-10-08T06:45:15",
"upload_time_iso_8601": "2022-10-08T06:45:15.990262Z",
"url": "https://files.pythonhosted.org/packages/03/eb/6a1ac18c321ab2fb4b75ff800566887ae868b4b130c6bc079c4c55d41ec7/cr_sparse-0.3.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "1d83078160b81dee21e447a58fdd8fe4",
"sha256": "ec2bf21c346c1c735878f98314bf4b6708bec5a162267a6d6e245a66048bdff9"
},
"downloads": -1,
"filename": "cr-sparse-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "1d83078160b81dee21e447a58fdd8fe4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 118144,
"upload_time": "2022-10-08T06:45:18",
"upload_time_iso_8601": "2022-10-08T06:45:18.131149Z",
"url": "https://files.pythonhosted.org/packages/c9/8e/d01f3087dbd1b144e0ddadf23bb4d0cac0821c7e954ae704062b0d884733/cr-sparse-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-10-08 06:45:18",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "cr-sparse"
}