Skip to main content

Online quantum machine learning package, using PyTorch.

Project description

online-qml

online-qml is a PyTorch based package for quantum extreme learning machines (QELM) simulations. It is with online shadow training readouts.

The distribution name is online-qml; the import name is online_qml.

Installation

Clone and sync with uv

Clone the repository, then sync the project environment:

git clone https://github.com/alex180500/online-qml.git
cd online-qml
uv sync

The default uv sync installs:

  • package dependencies;
  • development tools from the dev dependency group;
  • the CPU PyTorch build from https://download.pytorch.org/whl/cpu.

To install the default CPU environment without development tools:

uv sync --no-dev

Supported PyTorch backends for local uv sync are:

Backend Command
CPU uv sync
CPU, no dev tools uv sync --no-dev
CUDA 12.6 uv sync --no-group cpu --extra cu126
CUDA 12.8 uv sync --no-group cpu --extra cu128
CUDA 13.0 uv sync --no-group cpu --extra cu130

The cpu group is enabled by default. Disable it when selecting a CUDA extra, otherwise uv will reject the sync because two Torch backends were requested.

Install as a dependency with pip

When online-qml is installed with pip, only the package dependencies are installed. The local uv dependency groups, including dev and cpu, are not installed by downstream projects.

Install the desired PyTorch build first, then install online-qml:

python -m pip install --index-url https://download.pytorch.org/whl/cpu "torch>=2.11"
python -m pip install online-qml

For CUDA, use the matching PyTorch wheel index:

Backend PyTorch install command
CPU python -m pip install --index-url https://download.pytorch.org/whl/cpu "torch>=2.11"
CUDA 12.6 python -m pip install --index-url https://download.pytorch.org/whl/cu126 "torch>=2.11"
CUDA 12.8 python -m pip install --index-url https://download.pytorch.org/whl/cu128 "torch>=2.11"
CUDA 13.0 python -m pip install --index-url https://download.pytorch.org/whl/cu130 "torch>=2.11"

Then install online-qml:

python -m pip install online-qml

Do not rely on pip install "online-qml[cu130]" by itself to select the CUDA wheel index. Package extras can request torch, but pip package metadata cannot carry the uv source-index routing from this repository.

Current focus

  • generate Haar pure states and random Naimark POVMs;
  • train OST and prior-frame readout layers;
  • train dense pseudoinverse/ridge baselines;
  • evaluate Haar bias and variance;
  • study state-frame and measurement-frame distances.

Minimal example

import torch
from online_qml.quantum import sample_dm, sample_povm, shots_outcome
from online_qml.estimators import ShadowReadoutEstimator

states = sample_dm(1000, d=2, dtype=torch.cdouble)
povm = sample_povm(16, d=2, dtype=torch.cdouble)
outcomes = shots_outcome(povm, states, shots=1)
obs = sample_dm(1, d=2, dtype=torch.cdouble).T

est = ShadowReadoutEstimator(
    n_out=16,
    d=2,
    dtype=torch.float64,
    methods=("ost", "state_prior_ost"),
)
est.update_single_shot(outcomes[:, 0], states)
layers = est.layers(obs)
W_ost = layers["ost"]
W_state_prior = layers["state_prior_ost"]

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

online_qml-0.5.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

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

online_qml-0.5.0-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file online_qml-0.5.0.tar.gz.

File metadata

  • Download URL: online_qml-0.5.0.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for online_qml-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4e9abb9a1ca912cd3ed9930bb2043e596cda74ed49eb1ca3e48a78dad7bd92c9
MD5 f31bf8dc4dae81752470ce6edfd23802
BLAKE2b-256 c3ace4d167b0a40e7cf758490cc309299bd75dd4f1c0f2557b1a6388096c0330

See more details on using hashes here.

File details

Details for the file online_qml-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: online_qml-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for online_qml-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28f01570a35ed9d9c8df9358c5f794d428e5ee6e55fee3fb10f4205e62611ced
MD5 c0884409afeaa0f7828efb3d5faad441
BLAKE2b-256 bb525207d2d625e67ead24b2a616bfe995dd268809593b30159fef42026e944f

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