Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate QGANs to new interfaces #48

Closed
4 tasks
stefan-woerner opened this issue Apr 13, 2021 · 1 comment
Closed
4 tasks

Migrate QGANs to new interfaces #48

stefan-woerner opened this issue Apr 13, 2021 · 1 comment
Assignees
Labels
Changelog: API Change Include in the Changed section of the changelog type: feature request 💡 New feature or request

Comments

@stefan-woerner
Copy link
Contributor

stefan-woerner commented Apr 13, 2021

Migrate the currently existing QGAN implementation to the new NN interfaces in Qiskit ML:

  • Introduce classical NN that implements NN interface
  • Add "1 step" to optimizers (where possible, otherwise throw exception)
  • Introduce QGAN that takes NN for generator (sampling) and discriminator (requires design first)
  • Introduce required loss function (can we get gradients here without getting eval for all x?)
@stefan-woerner stefan-woerner added Changelog: API Change Include in the Changed section of the changelog type: epic 😎 A theme of work that contain sub-tasks labels Apr 13, 2021
@adekusar-drl adekusar-drl added Epic and removed type: epic 😎 A theme of work that contain sub-tasks labels Apr 13, 2021
@adekusar-drl adekusar-drl removed the Epic label Aug 17, 2022
@adekusar-drl
Copy link
Collaborator

Closed via #414

OkuyanBoga added a commit that referenced this issue Nov 11, 2024
* Update README.md

* Generalize the Einstein summation signature

* Add reno

* Update Copyright

* Rename and add test

* Update Copyright

* Add docstring for `test_get_einsum_signature`

* Correct spelling

* Disable spellcheck for comments

* Add `docstring` in pylint dict

* Delete example in docstring

* Add Einstein in pylint dict

* Add full use case in einsum dict

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (2/2)

* Update RuntimeError msg

* Update RuntimeError msg - line too long

* Trigger CI

* Merge algos, globals.random to fix

* Fixed `algorithms_globals`

* Import /tests and run CI locally

* Fix copyrights and some spellings

* Ignore mypy in 8 instances

* Merge spell dicts

* Black reformatting

* Black reformatting

* Add reno

* Lint sanitize

* Pylint

* Pylint

* Pylint

* Pylint

* Fix relative imports in tutorials

* Fix relative imports in tutorials

* Remove algorithms from Jupyter magic methods

* Temporarily disable "Run stable tutorials" tests

* Change the docstrings with imports from qiskit_algorithms

* Styling

* Update qiskit_machine_learning/optimizers/gradient_descent.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Update qiskit_machine_learning/optimizers/optimizer_utils/learning_rate.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Add more tests for utils

* Add more tests for optimizers: adam, bobyqa, gsls and imfil

* Fix random seed for volatile optimizers

* Fix random seed for volatile optimizers

* Add more tests

* Pylint dict

* Activate scikit-quant-0.8.2

* Remove scikit-quant methods

* Remove scikit-quant methods (2)

* Edit the release notes and Qiskit version 1+

* Edit the release notes and Qiskit version 1+

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Apply line breaks

* Restructure line breaks

* Added support for SamplerV2 primitives (#49)

* Migrating `qiskit_algorithms` (#817)

* Update README.md

* Generalize the Einstein summation signature

* Add reno

* Update Copyright

* Rename and add test

* Update Copyright

* Add docstring for `test_get_einsum_signature`

* Correct spelling

* Disable spellcheck for comments

* Add `docstring` in pylint dict

* Delete example in docstring

* Add Einstein in pylint dict

* Add full use case in einsum dict

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (2/2)

* Update RuntimeError msg

* Update RuntimeError msg - line too long

* Trigger CI

* Merge algos, globals.random to fix

* Fixed `algorithms_globals`

* Import /tests and run CI locally

* Fix copyrights and some spellings

* Ignore mypy in 8 instances

* Merge spell dicts

* Black reformatting

* Black reformatting

* Add reno

* Lint sanitize

* Pylint

* Pylint

* Pylint

* Pylint

* Fix relative imports in tutorials

* Fix relative imports in tutorials

* Remove algorithms from Jupyter magic methods

* Temporarily disable "Run stable tutorials" tests

* Change the docstrings with imports from qiskit_algorithms

* Styling

* Update qiskit_machine_learning/optimizers/gradient_descent.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Update qiskit_machine_learning/optimizers/optimizer_utils/learning_rate.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Add more tests for utils

* Add more tests for optimizers: adam, bobyqa, gsls and imfil

* Fix random seed for volatile optimizers

* Fix random seed for volatile optimizers

* Add more tests

* Pylint dict

* Activate scikit-quant-0.8.2

* Remove scikit-quant methods

* Remove scikit-quant methods (2)

* Edit the release notes and Qiskit version 1+

* Edit the release notes and Qiskit version 1+

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Apply line breaks

* Restructure line breaks

---------

Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: M. Emre Sahin <40424147+OkuyanBoga@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Revamp readme pt2 (#822)

* Restructure README.md
---------

Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>

* V2 Primitive Support for SamplerQNN and Gradients

* Update base_sampler_gradient.py

* Update qiskit_machine_learning/gradients/param_shift/param_shift_sampler_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/gradients/spsa/spsa_sampler_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/gradients/spsa/spsa_sampler_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/sampler_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/sampler_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/sampler_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/sampler_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/sampler_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/sampler_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Fix lint errors due to Pylint 3.3.0 update in CI (#833)

* disable=too-many-positional-arguments

* Transfer pylint rc to toml

* Transfer pylint rc to toml

* Minor fixes

* Remove Python 3.8 from CI (#824) (#826)

* Remove Python 3.8 in CI (#824)

* Correct `tmp` dirs (#818)

* Correct unit py version (#818)

* Add reno (#818)

* Finalze removal of py38 (#818)

* Spelling

* Remove duplicate tmp folder

* Updated the release note

* Bump min pyversion in toml

* Remove ipython constraints

* Update reno

* Updated test for test_sampler_qnn

* Fix: output_shape

* Adding optimisation level to TestSamplerQNN SamplerV2 option

* Correcting the PUB prep for SamplerV2 by changing max iterator from n to len(job_param_values). Added a load of print statements to investigate behaviour when self._output_shape = (2, 3) - a tuple as this was failing tests due to a comparison in line 166. This has lead me to think that the way we are calculating QuasiDistribution is wrong as we need to know which real qubits the virtual qubits have been transpiled too to calculate the correct dist for SamplerV2. Following this up with IBM runtime.

* Update sampler_qnn.py for correcting tuple output_shape when interpret is provided.

* Adding ISA capabilities to gradients

* Fix output shape and its default for V2

* Implement SamplerV2 for bayesian inference

* Implement SamplerV2 for bayesian inference

* Adding ISA capabilities to SamplerQNN and ParamShiftSamplerGradient

* Removing unused backend

* Removing failed merge conflicts

* Removing residual merge conflicts

* added SamplerV2 support for ComputeUncompute

* Removing multiple tranpilations within same test

* Formatting

* Linting

* Adding measure_all to setUp

* removing default pm

---------

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>
Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>
Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>
Co-authored-by: oscar-wallis <oscar.wallis@outlook.com>

* Added support for EstimatorV2 primitives (#48)

* Migrating `qiskit_algorithms` (#817)

* Update README.md

* Generalize the Einstein summation signature

* Add reno

* Update Copyright

* Rename and add test

* Update Copyright

* Add docstring for `test_get_einsum_signature`

* Correct spelling

* Disable spellcheck for comments

* Add `docstring` in pylint dict

* Delete example in docstring

* Add Einstein in pylint dict

* Add full use case in einsum dict

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (2/2)

* Update RuntimeError msg

* Update RuntimeError msg - line too long

* Trigger CI

* Merge algos, globals.random to fix

* Fixed `algorithms_globals`

* Import /tests and run CI locally

* Fix copyrights and some spellings

* Ignore mypy in 8 instances

* Merge spell dicts

* Black reformatting

* Black reformatting

* Add reno

* Lint sanitize

* Pylint

* Pylint

* Pylint

* Pylint

* Fix relative imports in tutorials

* Fix relative imports in tutorials

* Remove algorithms from Jupyter magic methods

* Temporarily disable "Run stable tutorials" tests

* Change the docstrings with imports from qiskit_algorithms

* Styling

* Update qiskit_machine_learning/optimizers/gradient_descent.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Update qiskit_machine_learning/optimizers/optimizer_utils/learning_rate.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Add more tests for utils

* Add more tests for optimizers: adam, bobyqa, gsls and imfil

* Fix random seed for volatile optimizers

* Fix random seed for volatile optimizers

* Add more tests

* Pylint dict

* Activate scikit-quant-0.8.2

* Remove scikit-quant methods

* Remove scikit-quant methods (2)

* Edit the release notes and Qiskit version 1+

* Edit the release notes and Qiskit version 1+

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Apply line breaks

* Restructure line breaks

---------

Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: M. Emre Sahin <40424147+OkuyanBoga@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Revamp readme pt2 (#822)

* Restructure README.md
---------

Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>

* Added support for EstimatorV2 primitives

* Update qiskit_machine_learning/neural_networks/estimator_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/estimator_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/estimator_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/estimator_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/gradients/param_shift/param_shift_estimator_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/gradients/spsa/spsa_estimator_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/gradients/param_shift/param_shift_estimator_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/estimator_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/neural_networks/estimator_qnn.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Update qiskit_machine_learning/gradients/param_shift/param_shift_estimator_gradient.py

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>

* Fix lint errors due to Pylint 3.3.0 update in CI (#833)

* disable=too-many-positional-arguments

* Transfer pylint rc to toml

* Transfer pylint rc to toml

* Cleaner statements

* Remove Python 3.8 from CI (#824) (#826)

* Remove Python 3.8 in CI (#824)

* Correct `tmp` dirs (#818)

* Correct unit py version (#818)

* Add reno (#818)

* Finalze removal of py38 (#818)

* Spelling

* Remove duplicate tmp folder

* Updated the release note

* Bump min pyversion in toml

* Remove ipython constraints

* Update reno

* Added unit tests for estimatorqnnV2 and minor fixes

* Make black

* Make lint and changes to V1/2 choice logics

* Update requirements

* Add default precision

* Update estimator tests

* Change num qubits in backend

* Allow for num_qubits=None

* Fix shape in parameter shift

* Fix shape in parameter shift

* Fix shape observables

* Fix shape observables

* Change default precision to match base estimator

* Fix remaining shape issues

* Estimator seed has no effect in local testing

* fix argnames and supress error tolerance for test_estimator_qnn_v2

* Added pass manager the gradients.

* quick bugfix for isa_circuits

* Updating PUBs for estimatorqnn, updating test_estimator_qnn_v2 for ISA circs and relaxing tolerances

* Lint and formatting

* Tranpiling observables for isa g circs

* fixing apply_layout

---------

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>
Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>
Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>
Co-authored-by: oscar-wallis <oscar.wallis@outlook.com>

* Pulled changes from main

* Quick fix

* bugfix for V1

* formatting

* Prep-ing for 0.8 (#53)

* Migrating `qiskit_algorithms` (#817)

* Update README.md

* Generalize the Einstein summation signature

* Add reno

* Update Copyright

* Rename and add test

* Update Copyright

* Add docstring for `test_get_einsum_signature`

* Correct spelling

* Disable spellcheck for comments

* Add `docstring` in pylint dict

* Delete example in docstring

* Add Einstein in pylint dict

* Add full use case in einsum dict

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Spelling and type ignore

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (1/2)

* Remove for loop in einsum function and remove Literal arguments (2/2)

* Update RuntimeError msg

* Update RuntimeError msg - line too long

* Trigger CI

* Merge algos, globals.random to fix

* Fixed `algorithms_globals`

* Import /tests and run CI locally

* Fix copyrights and some spellings

* Ignore mypy in 8 instances

* Merge spell dicts

* Black reformatting

* Black reformatting

* Add reno

* Lint sanitize

* Pylint

* Pylint

* Pylint

* Pylint

* Fix relative imports in tutorials

* Fix relative imports in tutorials

* Remove algorithms from Jupyter magic methods

* Temporarily disable "Run stable tutorials" tests

* Change the docstrings with imports from qiskit_algorithms

* Styling

* Update qiskit_machine_learning/optimizers/gradient_descent.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Update qiskit_machine_learning/optimizers/optimizer_utils/learning_rate.py

Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Add more tests for utils

* Add more tests for optimizers: adam, bobyqa, gsls and imfil

* Fix random seed for volatile optimizers

* Fix random seed for volatile optimizers

* Add more tests

* Pylint dict

* Activate scikit-quant-0.8.2

* Remove scikit-quant methods

* Remove scikit-quant methods (2)

* Edit the release notes and Qiskit version 1+

* Edit the release notes and Qiskit version 1+

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Add Qiskit 1.0 upgrade in reno

* Apply line breaks

* Restructure line breaks

---------

Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: M. Emre Sahin <40424147+OkuyanBoga@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>

* Revamp readme pt2 (#822)

* Restructure README.md
---------

Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>

* Fix lint errors due to Pylint 3.3.0 update in CI (#833)

* disable=too-many-positional-arguments

* Transfer pylint rc to toml

* Transfer pylint rc to toml

* Remove Python 3.8 from CI (#824) (#826)

* Remove Python 3.8 in CI (#824)

* Correct `tmp` dirs (#818)

* Correct unit py version (#818)

* Add reno (#818)

* Finalze removal of py38 (#818)

* Spelling

* Remove duplicate tmp folder

* Updated the release note

* Bump min pyversion in toml

* Remove ipython constraints

* Update reno

* Reestablish latest Pytorch and Numpy (#818) (#827)

* Reestablish latest Pytorch and Numpy (#818)

* Keep pinned Numpy

* Keep pinned Numpy

* Fix numpy min version

* Fix RawFeatureVector for failing test case (#838)

* Alter RawFeatureVector normalization

* Alter RawFeatureVector normalization

* Release nbconvert constraints (#842)

* Remove redundant MacOS 14 image in CI (#841)

* Remove redundant MacOS 14 image

* Update with macos-latest-large

* Revert "Update with macos-latest-large"

This reverts commit 14f945e.

* Update with macos-latest-large

* Update v2 (#54)

* bugfix for V1

* formatting

---------

Co-authored-by: oscar-wallis <oscar.wallis@outlook.com>

---------

Co-authored-by: Edoardo Altamura <38359901+edoaltamura@users.noreply.github.com>
Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: M. Emre Sahin <40424147+OkuyanBoga@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>
Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>

* Update test_qbayesian

* Bugfixing the test_gradient

* Fixing an Options error with sampler_gradient

* Linting and formatting

* Add reno

* Fix dict typing definition

* Fix mypy

* Issue deprecation warnings

* Update skip test message

* Update deprecation warning for qbayesian.py

* Update deprecation warning for qbayesian.py

* Add headers in deprecation.py

* Add headers in deprecation.py

* Add headers in deprecation.py

* Correct spelling

* Add spelling `msg`

---------

Co-authored-by: FrancescaSchiav <FrancescaSchiav@users.noreply.github.com>
Co-authored-by: M. Emre Sahin <40424147+OkuyanBoga@users.noreply.github.com>
Co-authored-by: Declan Millar <declan.millar@ibm.com>
Co-authored-by: Steve Wood <40241007+woodsp-ibm@users.noreply.github.com>
Co-authored-by: oscar-wallis <oscar.wallis@outlook.com>
Co-authored-by: Emre <mustafaemresahin@outlook.com>
Co-authored-by: Oscar <108736468+oscar-wallis@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: API Change Include in the Changed section of the changelog type: feature request 💡 New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants