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
- 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.
- Specialized for Phase Retrieval: Optimized for tasks in phase retrieval and tomography, ensuring precise and reliable reconstructions.
- Modular Design: The architecture allows users to integrate their own forward models, making it adaptable for a range of reconstruction challenges.
- 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:
- Holography phase retrieval:
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c11587751fc1dd8df075c0fe5b90e4127686f2163f21c997c36999b3d4e38aef
|
|
| MD5 |
1328cd878b415c9bc8c76e40d759e352
|
|
| BLAKE2b-256 |
1a08ba74baa93ab690f46de85645a158312c724090376cdf2f69bcca11be3672
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0765e0b22bf037f602c15b33409f85dc0c707c444ef722e688fd6a0677da98e8
|
|
| MD5 |
c9760a73ea6cdd1ae08b2f309e70eeb6
|
|
| BLAKE2b-256 |
b7bed9a025160d60a4dd6f6313d6a7313287cd74ca896e8f86a8fad9185103ed
|