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
devdependency 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
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 online_qml-0.4.1.tar.gz.
File metadata
- Download URL: online_qml-0.4.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e172f2121800ffaf53dcdd582a099bea27567d67281a96a4e6168d43a5ca091
|
|
| MD5 |
14e618a72e5acfa6385a491be2e3dab0
|
|
| BLAKE2b-256 |
89b2754b8873a3f4a29cba1a28ff54780ea80c7b240f72d2558d587d48d8a0bb
|
File details
Details for the file online_qml-0.4.1-py3-none-any.whl.
File metadata
- Download URL: online_qml-0.4.1-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee56b278401598783b3bdeb0e714f644368785e586cc76bc6c2804e0614433a7
|
|
| MD5 |
9ac8269b13d35fff1536faa467616a17
|
|
| BLAKE2b-256 |
e29c1c9482a26c423bb46dbd7faea0ad271724cab5fecab46aeb241f210fae57
|