Skip to main content

Implementation of Guided-SPSA

Project description

Guide-SPSA Gradients

Static Badge Static Badge

This repository implements the Guided-SPSA gradients introduced in "Guided-SPSA: Simultaneous Perturbation Stochastic Approximation assisted by the Parameter Shift Rule by M. Periyasamy et. al."

Features

  • Integration: Easily integrate with Qiskit and Tensorflow-Quantum APIs. The code inherits the respective differentiators provided by the APIs. Hence, one can use this implementation in any standard machine learning work that deals with gradient estimation via "expectation values" in Qiskit or TensorFlow-Quanutm.

Setup and Installation

The library requires an installation of python > 3.9 , and following libraries:

  • Qiskit version
    • qiskit
    • qiskit-algorithms
  • Tensorflow-Quantum version
    • tensorflow
    • tesnroflow-quantum

The package can be installed via pip:

  • package without other dependencies

    pip install gspsa-gradients
    
  • To install the with qiskit dependency:

    pip install gspsa-gradients[qiskit]
    
  • To install the with tfq dependency:

    pip install gspsa-gradients[tfq]
    
  • The package gspsa-gradients can be installed locally via:

    git clone https://github.com/maniraman-periyasamy/gspsa-gradients.git
    cd gspsa-gradients
    pip install -e .
    

Usage and Examples

Usage

  • Qiskit version
    from gspsa_gradients.qiskit_gradient import GSPSAEstimatorGradient
    from qiskit.primitives import Estimator
    gradient = GSPSAEstimatorGradient(total_steps = num_epochs, estimator=Estimator(), num_observables = len(observables), 
        tau=0.5, spsa_epsilon=0.01, damping_coeff=0.5)
    qnn1 = EstimatorQNN(
        circuit=qc, input_params=inputParams, weight_params=circuitParams, observables=observables, gradient=gradient, input_gradients=False)
    
    ...
    
  • TFQ verison
    from gspsa_gradients.tfq_gradient import GSPSAGradient
    diff=GSPSAGradient(total_steps=num_epochs, input_dims=num_inputs, tau=0.5, spsa_epsilon=0.01, damping_coeff=0.5)
    quantum_layer = tfq.layers.ControlledPQC(circuit, observables, differentiator=diff, repetitions=1024) # make repitions to 0 for exact expectation value estimation 
    
    ...
    

Example

Qml examples are provided in the examples folder

Acknowledgements

We use qiskit software framework: https://github.com/Qiskit and tensorflow-quantumsoftware framework: https://github.com/tensorflow/quantum

Citation

If you use the gspsa-gradients or results from the paper, please cite our work as

@misc{periyasamy2024guidedspsa,
      title={Guided-SPSA: Simultaneous Perturbation Stochastic Approximation assisted by the Parameter Shift Rule}, 
      author={Maniraman Periyasamy and Axel Plinge and Christopher Mutschler and Daniel D. Scherer and Wolfgang Mauerer},
      year={2024},
      eprint={2404.15751},
      archivePrefix={arXiv},
      primaryClass={quant-ph}
}

Version History

Initial release (v0.1.0): May 2024

License

Apache 2.0 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

gspsa_gradients-0.1.4.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

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

gspsa_gradients-0.1.4-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file gspsa_gradients-0.1.4.tar.gz.

File metadata

  • Download URL: gspsa_gradients-0.1.4.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for gspsa_gradients-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c64ed15ee5f095dae8e51b374f4df5f9834abfed962f9f9d4676a9efd6f40b82
MD5 e88e7a022f39682332bb6d0600378797
BLAKE2b-256 4d4cab27cc901c59f3233f1aae8e4daf858afbe6ca9af41f2f614e0228c33dd5

See more details on using hashes here.

File details

Details for the file gspsa_gradients-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for gspsa_gradients-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5e207bdcf98b0da153d50c3aa71abe92d1753cfcc4c52b878e37ac281540a080
MD5 3d046a668eb2cebbb79050671d7a6eae
BLAKE2b-256 d1a4298d4cebfdfc041950dcd2a588c42f3e09f958814d0b6fd31014c5e6f579

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