Skip to main content

Gaussian processes for image analysis

Project description

PyPI version Build Status Documentation Status Codacy Badge

Colab Gitpod ready-to-code

GPim

Under active development (expect some breaking changes)

What is GPim?

GPim is a python package that provides an easy way to apply Gaussian processes (GP) and GP-based Bayesian optimization to images and hyperspectral data in Pyro and Gpytorch without a need to learn those frameworks.

For the examples, see our papers:

GP for 3D hyperspectral data: https://arxiv.org/abs/1911.11348

GP for 4D hyperspectral data: https://arxiv.org/abs/2002.03591

The intended audience are domain scientists (for example, microscopists) with a basic knowledge of python.

Installation

To use it, first run:

pip install gpim

How to use

General usage

Below is a simple example of applying GPim to reconstructing a sparse 2D image. It can be similarly applied to 3D and 4D hyperspectral data. The missing data points in sparse data must be represented as NaNs. In the absense of missing observation GPim can be used for image and spectroscopic data cleaning/smoothing in all the dimensions simultaneously, as well as for the resolution enhancement. Finally, when performing measurements, one can use the information about uncertainty in GP reconstruction to select the next measurement point (more details in the notebooks referenced below).

import gpim
import numpy as np

# # Load dataset
R = np.load('sparse_exp_data.npy') 

# Get full (ideal) grid indices
X_full = gpim.utils.get_full_grid(R, dense_x=1)
# Get sparse grid indices
X_sparse = gpim.utils.get_sparse_grid(R)
# Kernel lengthscale constraints (optional)
lmin, lmax = 1., 4.
lscale = [[lmin, lmin], [lmax, lmax]] 

# Run GP reconstruction to obtain mean prediction and uncertainty for each predictied point
mean, sd, hyperparams = gpim.reconstructor(
    X_sparse, R, X_full, lengthscale=lscale,
    learning_rate=0.1, iterations=250, 
    use_gpu=True, verbose=False).run()

# Plot reconstruction results
gpim.utils.plot_reconstructed_data2d(R, mean, cmap='jet')
# Plot evolution of kernel hyperparameters during training
gpim.utils.plot_kernel_hyperparams(hyperparams)

Running GPim notebooks in the cloud

  1. Executable Google Colab notebook with the example of applying GP to sparse spiral 2D scans in piezoresponse force microscopy (PFM) and hyperspectral 3D data in Band Excitation PFM.
  2. Executable Google Colab notebook with the example of applying GP to 4D spectroscopic dataset for smoothing and resolution enhancement in contact Kelvin Probe Force Microscopy (cKPFM).
  3. Executable Google Colab notebook with a simple example of performing GP-based exploration-exploitation on a toy dataset.

Requirements

It is strongly recommended to run the codes with a GPU hardware accelerator (such as NVIDIA's P100 or V100 GPU). If you don't have a GPU on your local machine, you may rent a cloud GPU from Google Cloud AI Platform. Running the example notebooks one time from top to bottom will cost about 1 USD with a standard deep learning VM instance (one P100 GPU and 15 GB of RAM).

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

gpim-0.2.3.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

gpim-0.2.3-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file gpim-0.2.3.tar.gz.

File metadata

  • Download URL: gpim-0.2.3.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for gpim-0.2.3.tar.gz
Algorithm Hash digest
SHA256 097de49788232e4872500ddc4bdc706780e8d44a0f853a1e0d9c81422a85cdd1
MD5 e1abaafc10426ff31a613a66b08601a0
BLAKE2b-256 53cb8a0007bad4be6938f06152f5cd94ecc268cf3c379acd6136dd602ab9ab0a

See more details on using hashes here.

File details

Details for the file gpim-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: gpim-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for gpim-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cf8ed4856ed641d7d3b9b9f312705f52661da74b417d693fd9e7e7e574f1dfd4
MD5 577151310e4f5cf9aafc49b145795384
BLAKE2b-256 44573bc9b921ff075829b51c549d304daf5a5573e33867d091027ef6ac5faefa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page