Skip to main content

A deep neural network data reconstruction platform for phase retreival

Project description

SELFPHISH: a Self-supervised, Physics-Informed generative networks approach for the phase retrieval

Overview

SELFPHISH is a data reconstruction framework that harnesses the power of self-supervised, physics-informed generative networks. While traditional reconstruction methods rely on intricate algorithms to piece together fragmented data, SELFPHISH leverages deep generative models that are both self-supervised and guided by physical constraints to reimagine and revitalize the phase retrieval process.

Originally designed for complex phase retrieval in tomography and holography, SELFPHISH shines in its adaptability. With the capability to incorporate user-defined forward models, this framework can be flexibly adapted for various advanced data reconstruction challenges.

Features

  1. Self-supervised, Physics-Informed Networks: At its core, SELFPHISH employs deep generative networks that are both self-supervised and physics-guided, enabling cutting-edge reconstruction performance.
  2. Specialized for Phase Retrieval: Optimized for tasks in phase retrieval and tomography, ensuring precise and reliable reconstructions.
  3. Modular Design: The architecture allows users to integrate their own forward models, making it adaptable for a range of reconstruction challenges.
  4. Efficient and Scalable: Built to manage large datasets, SELFPHISH maintains speed and efficiency without compromising reconstruction accuracy.

Installation

This guide provides detailed steps for setting up the selfphish package in a Conda environment.

Steps for General Users

1. Create & Activate a Conda Environment

Open your terminal and create a new environment named selfphish with Python 3.11:

conda create --name selfphish python=3.10
conda activate selfphish

2. Install TensorFlow OR PyTorch

Choose and install either TensorFlow or PyTorch based on your preference.

For TensorFlow:

pip install tensorflow

For PyTorch (ensure you select the correct version for your system from the official website):

# Example command for installing PyTorch with CUDA support
pip install torch torchvision torchaudio

3. Install 'selfphish' from PyPI

Finally, install the selfphish package from PyPI:

pip install selfphish

Steps for Developers

If you are contributing to SELFPHISH development, please follow these steps to set up your development environment:

1. Create & Activate a Conda Environment

Open your terminal and create a new conda environment named selfphish with Python 3.11:

conda create --name selfphish python=3.10
conda activate selfphish

2. Install TensorFlow OR PyTorch

Choose and install either TensorFlow or PyTorch.

For TensorFlow:

pip install tensorflow

For PyTorch:

# Example command for installing PyTorch with CUDA support
pip install torch torchvision torchaudio

3. Clone the SELFPHISH Repository

Clone the repository from GitHub to your local machine:

git clone https://github.com/XYangXRay/selfphish.git

4. Install the Required Packages

Navigate to the repository’s main directory and install the necessary packages in editable mode:

cd selfphish
python3 -m pip install -e .

Additional Notes for Users

Choosing Between TensorFlow and PyTorch

If unsure which one to choose, consider the requirements of your project or your familiarity with the libraries:

  • TensorFlow is known for its production deployment capabilities and integration with TensorFlow Extended (TFX).
  • PyTorch is favored for its simplicity, dynamic computation graph, and strong research community support.

Installing GPU Support

SELFPHISH is designed for GPU-accelerated tasks. Ensure you install the GPU versions of TensorFlow or PyTorch. Refer to their official websites for instructions on installing GPU support.

Examples

SELFPHISH currently includes examples for phase retrieval of holography:

  1. Holography phase retrieval:
  2. X-ray tomography:

References

If you find SELFPHISH useful for your research or projects, please consider citing:

J. Synchrotron Rad. (2020). 27, 486-493.
Available at: https://doi.org/10.1107/S1600577520000831

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

selfphish-0.1.0.tar.gz (10.0 MB view details)

Uploaded Source

Built Distribution

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

selfphish-0.1.0-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file selfphish-0.1.0.tar.gz.

File metadata

  • Download URL: selfphish-0.1.0.tar.gz
  • Upload date:
  • Size: 10.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for selfphish-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c11587751fc1dd8df075c0fe5b90e4127686f2163f21c997c36999b3d4e38aef
MD5 1328cd878b415c9bc8c76e40d759e352
BLAKE2b-256 1a08ba74baa93ab690f46de85645a158312c724090376cdf2f69bcca11be3672

See more details on using hashes here.

File details

Details for the file selfphish-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: selfphish-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for selfphish-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0765e0b22bf037f602c15b33409f85dc0c707c444ef722e688fd6a0677da98e8
MD5 c9760a73ea6cdd1ae08b2f309e70eeb6
BLAKE2b-256 b7bed9a025160d60a4dd6f6313d6a7313287cd74ca896e8f86a8fad9185103ed

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