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-1.0.0.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-1.0.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gspsa_gradients-1.0.0.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-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d9c114ed8ae4cee29811d1eda8872dc7979a15c6c623a2d523eda36d87ab35d4
MD5 5b5e0522f65aaee95b857e6023512911
BLAKE2b-256 81481a3e90662c37bbf2f6f93f24ab230f4a0f2628bbdb9c3e2bb818eb9302ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gspsa_gradients-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 590ad7e5376ffb0d11fb6678235e0a492bad1ed1bf204127f4c7e63f680f2f25
MD5 b5d09382e6375fecd1a67d948b6e2a6e
BLAKE2b-256 09cbd414b200e54a35ded9d4895e780bd455c33fb0468ab9b7ef223ff2046504

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