All Projects → mikgroup → Sigpy

mikgroup / Sigpy

Licence: bsd-3-clause
Python package for signal processing, with emphasis on iterative methods

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Sigpy

Hybridizer Basic Samples
Examples of C# code compiled to GPU by hybridizer
Stars: ✭ 186 (+40.91%)
Mutual labels:  gpu, optimization
Tensorrt Utils
⚡ Useful scripts when using TensorRT
Stars: ✭ 136 (+3.03%)
Mutual labels:  gpu, optimization
3dunderworld Sls Gpu cpu
A structured light scanner
Stars: ✭ 157 (+18.94%)
Mutual labels:  gpu, reconstruction
Meshoptimizer
Mesh optimization library that makes meshes smaller and faster to render
Stars: ✭ 2,930 (+2119.7%)
Mutual labels:  gpu, optimization
Open3d
Open3D: A Modern Library for 3D Data Processing
Stars: ✭ 5,860 (+4339.39%)
Mutual labels:  gpu, reconstruction
Hyperlearn
50% faster, 50% less RAM Machine Learning. Numba rewritten Sklearn. SVD, NNMF, PCA, LinearReg, RidgeReg, Randomized, Truncated SVD/PCA, CSR Matrices all 50+% faster
Stars: ✭ 1,204 (+812.12%)
Mutual labels:  gpu, optimization
Wheels
Performance-optimized wheels for TensorFlow (SSE, AVX, FMA, XLA, MPI)
Stars: ✭ 891 (+575%)
Mutual labels:  gpu, optimization
Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (-35.61%)
Mutual labels:  gpu, optimization
Iqa Optimization
Comparison of IQA models in Perceptual Optimization
Stars: ✭ 123 (-6.82%)
Mutual labels:  optimization
Cuxfilter
GPU accelerated cross filtering with cuDF.
Stars: ✭ 128 (-3.03%)
Mutual labels:  gpu
Mlogger
a lightweight and simple logger for Machine Learning
Stars: ✭ 122 (-7.58%)
Mutual labels:  optimization
Finitediff.jl
Fast non-allocating calculations of gradients, Jacobians, and Hessians with sparsity support
Stars: ✭ 123 (-6.82%)
Mutual labels:  gpu
Ipyexperiments
jupyter/ipython experiment containers for GPU and general RAM re-use
Stars: ✭ 128 (-3.03%)
Mutual labels:  gpu
Next Optimized Images
🌅 next-optimized-images automatically optimizes images used in next.js projects (jpeg, png, svg, webp and gif).
Stars: ✭ 1,870 (+1316.67%)
Mutual labels:  optimization
Sddp.jl
Stochastic Dual Dynamic Programming in Julia
Stars: ✭ 130 (-1.52%)
Mutual labels:  optimization
Disvoice
feature extraction from speech signals
Stars: ✭ 121 (-8.33%)
Mutual labels:  signal-processing
Riskparity.py
Fast and scalable design of risk parity portfolios
Stars: ✭ 122 (-7.58%)
Mutual labels:  optimization
Mixbench
A GPU benchmark tool for evaluating GPUs on mixed operational intensity kernels (CUDA, OpenCL, HIP, SYCL)
Stars: ✭ 130 (-1.52%)
Mutual labels:  gpu
Ergo Pe Av
🧠 🦠 An artificial neural network and API to detect Windows malware, based on Ergo and LIEF.
Stars: ✭ 130 (-1.52%)
Mutual labels:  gpu
Shadergum
Unity3D GPU Sculpt & Morph
Stars: ✭ 125 (-5.3%)
Mutual labels:  gpu

SigPy

.. image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg :target: https://opensource.org/licenses/BSD-3-Clause

.. image:: https://travis-ci.com/mikgroup/sigpy.svg?branch=master :target: https://travis-ci.com/mikgroup/sigpy

.. image:: https://readthedocs.org/projects/sigpy/badge/?version=latest :target: https://sigpy.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://codecov.io/gh/mikgroup/sigpy/branch/master/graph/badge.svg :target: https://codecov.io/gh/mikgroup/sigpy

Source Code <https://github.com/mikgroup/sigpy>_ | Documentation <https://sigpy.readthedocs.io>_ | MRI Recon Tutorial <https://github.com/mikgroup/sigpy-mri-tutorial>_ | MRI Pulse Design Tutorial <https://github.com/jonbmartin/open-source-pulse-design>_

SigPy is a package for signal processing, with emphasis on iterative methods. It is built to operate directly on NumPy arrays on CPU and CuPy arrays on GPU. SigPy also provides several domain-specific submodules: sigpy.plot for multi-dimensional array plotting, sigpy.mri for MRI reconstruction, and sigpy.mri.rf for MRI pulse design.

Installation

SigPy requires Python version >= 3.5. The core module depends on numba, numpy, PyWavelets, scipy, and tqdm.

Additional features can be unlocked by installing the appropriate packages. To enable the plotting functions, you will need to install matplotlib. To enable CUDA support, you will need to install cupy. And to enable MPI support, you will need to install mpi4py.

Via conda


We recommend installing SigPy through conda::

conda install -c frankong sigpy
# (optional for plot support) conda install matplotlib
# (optional for CUDA support) conda install cupy
    # (optional for MPI support) conda install mpi4py

Via pip


SigPy can also be installed through pip::

pip install sigpy
# (optional for plot support) pip install matplotlib
# (optional for CUDA support) pip install cupy
    # (optional for MPI support) pip install mpi4py

Installation for Developers


If you want to contribute to the SigPy source code, we recommend you install it with pip in editable mode::

cd /path/to/sigpy
pip install -e .

To run tests and contribute, we recommend installing the following packages::

pip install coverage flake8 sphinx

and run the script run_tests.sh.

Features

CPU/GPU Signal Processing Functions


SigPy provides signal processing functions with a unified CPU/GPU interface. For example, the same code can perform a CPU or GPU convolution on the input array device:

.. code:: python

  # CPU convolve
  x = numpy.array([1, 2, 3, 4, 5])
  y = numpy.array([1, 1, 1])
  z = sigpy.convolve(x, y)

  # GPU convolve
  x = cupy.array([1, 2, 3, 4, 5])
  y = cupy.array([1, 1, 1])
  z = sigpy.convolve(x, y)

Iterative Algorithms


SigPy also provides convenient abstractions and classes for iterative algorithms. A compressed sensing experiment can be implemented in four lines using SigPy:

.. code:: python

  # Given some observation vector y, and measurement matrix mat
  A = sigpy.linop.MatMul([n, 1], mat)  # define forward linear operator
  proxg = sigpy.prox.L1Reg([n, 1], lamda=0.001)  # define proximal operator
  x_hat = sigpy.app.LinearLeastSquares(A, y, proxg=proxg).run()  # run iterative algorithm

PyTorch Interoperability


Want to do machine learning without giving up signal processing? SigPy has convenient functions to convert arrays and linear operators into PyTorch Tensors and Functions. For example, given a cupy array x, and a Linop A, we can convert them to Pytorch:

.. code:: python

  x_torch = sigpy.to_pytorch(x)
  A_torch = sigpy.to_pytorch_function(A)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].