Skip to main content

ProxTorch is a PyTorch library for proximal operators.

Project description

ProxTorch Logo

ProxTorch

Unleashing Proximal Gradient Descent on PyTorch 🚀

DOI codecov version downloads

🔍 What is ProxTorch?
Dive into a rich realm of proximal operators and constraints with ProxTorch, a state-of-the-art Python library crafted on PyTorch. Whether it's optimization challenges or the complexities of machine learning, ProxTorch is designed for speed, efficiency, and seamless GPU integration.

Features

  • 🚀 GPU-Boosted: Experience lightning-fast computations with extensive CUDA support.
  • 🔥 PyTorch Synergy: Naturally integrates with all your PyTorch endeavours.
  • 📚 Expansive Library: From elemental norms (L0, L1, L2, L∞) to advanced regularizations like Total Variation and Fused Lasso.
  • 🤝 User-Friendly: Jump right in! Intuitive design means minimal disruptions to your existing projects.

🛠 Installation

Getting started with ProxTorch is a breeze. Install from PyPI with:

pip install proxtorch

Or install from source with:

git clone
cd ProxTorch
pip install -e .

🚀 Quick Start

Dive in with this straightforward example:

import torch
from proxtorch.operators import L1

# Define a sample tensor
x = torch.tensor([0.5, -1.2, 0.3, -0.4, 0.7])

# Initialize the L1 proximal operator
l1_prox = L1(sigma=0.1)

# Compute the regularization component value
reg_value = l1_prox(x)
print("Regularization Value:", reg_value)

# Apply the proximal operator
result = l1_prox.prox(x)
print("Prox Result:", result)

📜 Diverse Proximal Operators

Regularizers

  • L1, L2 (Ridge), ElasticNet, GroupLasso, TV (includes TV_2D, TV_3D, TVL1_2D, TVL1_3D), **Frobenius **
  • Norms: TraceNorm, NuclearNorm
  • FusedLasso, Huber

Constraints

  • L0Ball, L1Ball, L2Ball, L∞Ball (Infinity Norm), Frobenius, TraceNorm, Box

📖 Documentation

Explore the comprehensive documentation on Read the Docs.

🙌 Credits

ProxTorch stands on the shoulders of giants:

We're thrilled to introduce ProxTorch as an exciting addition to the PyTorch ecosystem. We're confident you'll love it!

🤝 Contribute to the ProxTorch Revolution

Got ideas? Join our vibrant community and make ProxTorch even better!

📜 License

ProxTorch is proudly released under the MIT License.

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

proxtorch-0.0.9.tar.gz (12.5 kB view hashes)

Uploaded Source

Built Distribution

proxtorch-0.0.9-py3-none-any.whl (21.8 kB view hashes)

Uploaded Python 3

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