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

Snapshot: remove temporary fixes for lightning device #2291

Merged
merged 6 commits into from
Mar 11, 2022

Conversation

dime10
Copy link
Contributor

@dime10 dime10 commented Mar 8, 2022

Now that PennyLaneAI/pennylane-lightning#242 is resolved, the temporary fixes to make snapshot not break lightning can be removed.

@PennyLaneAI PennyLaneAI deleted a comment from github-actions bot Mar 8, 2022
@codecov
Copy link

codecov bot commented Mar 8, 2022

Codecov Report

❗ No coverage uploaded for pull request base (v0.22.0-rc0@d38a1fd). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@              Coverage Diff               @@
##             v0.22.0-rc0    #2291   +/-   ##
==============================================
  Coverage               ?   99.32%           
==============================================
  Files                  ?      242           
  Lines                  ?    19140           
  Branches               ?        0           
==============================================
  Hits                   ?    19011           
  Misses                 ?      129           
  Partials               ?        0           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d38a1fd...a53055d. Read the comment docs.

@dime10 dime10 requested a review from antalszava March 8, 2022 22:14
Copy link
Contributor

@antalszava antalszava left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! 💯

@@ -49,11 +50,12 @@ def circuit():
assert all(k1 == k2 for k1, k2 in zip(result.keys(), expected.keys()))
assert all(np.allclose(v1, v2) for v1, v2 in zip(result.values(), expected.values()))

def test_default_mixed(self):
@pytest.mark.parametrize("method", [None, "parameter-shift"])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious: any reason why adjoint is excluded from here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I don't think it's supported on the device.

@@ -65,6 +65,7 @@ jobs:
pip install -r requirements-ci.txt
python setup.py bdist_wheel
pip install dist/PennyLane*.whl
pip install --upgrade --pre -i https://test.pypi.org/simple/ PennyLane-Lightning
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: oh the cool advantage of this approach is that we can actually merge this change is nice 💯 (If we were pinning Lightning in requirements.txt, then that has to be reverted right before releasing PennyLane.)

Just need to take care when merging the release candidate into master. When that's done, we'd like to continue pulling the released version of PennyLane-Lightning on the master branch, hence this line should not make it into master. By the time the final rc to master PR is being made, PL-LIghtning v0.22.0 will have been released already, so this should be good 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So do you want to hold off on merging until lightning is released, or revert this line in another pr before merging back into master? :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR can be merged 👍

On the day of the release, there's going to be a PR opened that merges v0.22.0-rc0 into master. That PR should not contain this line (although by default it will because of how git works).

@dime10 dime10 merged commit f087377 into v0.22.0-rc0 Mar 11, 2022
@dime10 dime10 deleted the snapshot-lightning-fix branch March 11, 2022 20:38
josh146 added a commit that referenced this pull request Mar 15, 2022
* [Bug] Exclude Snapshot from adjoint backwards pass (#2289)

* Exclude Snapshot from adjoint backwards pass

* Add snapshots test for diff_methods

* Changelog

* Trigger rebuild

Co-authored-by: antalszava <antalszava@gmail.com>

* Work on consistency of `Operator`s (#2287)

* some inconsistencies

* swap basis

* undo duplicated wire in test

* changelog

* revert snapshot wires change

* unused import

* merge rc

* revert accidental changelog merge

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Batch run (#2069)

* batching ability for non-trainable inputs only following issue #2037

This function creates multiple circuit executions for batched input examples
and executes all batch inputs with the same trainable variables. The main
difference between the proposed version in the issue and this commit is the
input `argnum` this indicates the location of the given input hence gives the
ability to work across platforms.

* adaptation for batch execution

* improvements according to PR rules

* minor update according to PR errors

* modify according to codefactor-io

* reformatted code style

* adjust line lenght for linting

* update linting

* disable linting for too many arguments

* add testing for batch input in keras

* format test_keras.py

* add tests for remaining functions

* adapt the defaults

* update docstring according to @josh146 's suggestions

* remove keras sterilazation

* add batch_input to the docstring

* docstring update for readability: pennylane/transforms/batch_input.py

Co-authored-by: Josh Izaac <josh146@gmail.com>

* minor fix in documentation

* change assertion error to valueerror

* test valueerror

* modify the definition of argnum

* change argnum -> batch_idx

* update changelog-dev.md

* apply @josh146 's suggestions

* linting

* tests

* more

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* Circuit cutting: Tidy up documentation (#2279)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Apply suggestions from code review

Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Add link to communication graph

* Reword

* Move around

* fix

* fix

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Circuit cutting: update changelog (#2290)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Update changelog

* Link to docs page

* Update wording

* Apply suggestions from code review

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Move

* Update doc/releases/changelog-dev.md

Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Remove

* Update

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Minor gradient fixes (#2299)

* Produce consisten output shapes

In the absence of trainable params, some gradient transforms did not
produce an empty tuple yet like the rest of our functions.

* Minor formatting changes in param_shift_hessian

* Fix param_shift_hessian for all zero diff_methods

* Fix missing requires_grad & catch expected warning

* Changelog

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>

* Deprecate jacobian tape (#2306)

* Deprecate the Jacobian tape

* Deprecate tape subclasses

* changelog

* more test fixes

* tests

* Apply suggestions from code review

Co-authored-by: antalszava <antalszava@gmail.com>

Co-authored-by: antalszava <antalszava@gmail.com>

* `qml.generator` doc fixes (#2309)

* generator doc fixes

* more fixing

* Snapshot: remove temporary fixes for lightning device (#2291)

* Remove temp fixes for lightning

* Include diff_method tests for all devices

* Changelog

* Update CI to use pennylane-lightning dev

Co-authored-by: antalszava <antalszava@gmail.com>

* Docs fixes for v0.22.0 release (#2312)

* Fix Operator docstring hyperrefs

* Fix example for top-level matrix function

* Add example to Snapshot op docstring

* Fix tape drawing examples in docs

* Apply suggestions from code review

* Update pennylane/ops/snapshot.py

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Extend the conditional operations documentation (#2294)

* Add qfunc and else to cond's UsageDetails

* copy when inverting MV under the hood; add equivalent test case for inversion; add err msg when calling == of MV with unexpected typed obj; more examples

* format

* test docstr

* format

* correct examples

* format

* docstring

* have #2300 on rc too

* lambda example

* intro extend, docstring

* changelog PR num

* link

* note update

* updates

* Apply suggestions from code review

* updates

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Add `qml.generator(op)` backwards compatibility (#2305)

* Add qml.generator(op) backwards compatibility

* Apply suggestions from code review

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fix docstring

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fixed docs

* use better function refs

* pin pennylane-lightning version in CI (#2318)

* Amend docstring examples for `compute_matrix` and `compute_eigvals` (#2314)

* array()

* print() to get the output formatting correct

* revert array()

* print()

Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* Few docstring updates in prep for `v0.22.0` (#2311)

* updates

* - lower

* updates

* contract_tensor ref updates

* rename test file: batch_input

* explicit requires_grad upon param generation

* torch.Tensor as type

* Update pennylane/transforms/__init__.py

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* use tf in example

Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Support for controlled & adjoint in Snapshot/Barrier (#2315)

* controlled, adjoint

* Remove print

* Match adjoint signature of parent class

* Add tests for ctrl/adj support

* Update Barrier.adjoint signature

* Add ctrl test for Barrier

* Update tests/test_debugging.py

* Update tests/ops/test_snapshot.py

* Update tests/ops/test_snapshot.py

* changelog

* trigger build

Co-authored-by: Antal Szava <antalszava@gmail.com>

* ControlledQubitUnitary should raise `DecompositionUndefinedError` (#2320)

* DecompositionUndefinedError

* changelog

* trigger check

* `v0.22.0` release notes (#2303)

* version

* log ref

* rename

* sections; emojis

* format

* improvements order

* format

* addition; collabs; v0.21.0 collab alphabet fix

* reorder

* collab; deprecation item

* more PRs; collab list extended

* update

* sections

* op section break up

* correct matrix example

* suggestions

* suggestions

* a few more

* fix typo in code

* update

* no tf import

* update

Co-authored-by: Josh Izaac <josh146@gmail.com>

* don't pull test Lightning (requires v0.22.0 to land)

* require v0.22 Lightning or higher

* changelog list extend

* update

* Pin Lightning `>=0.22` (#2324)

* pin lightning >=0.22

* Update tests.yml

Co-authored-by: Josh Izaac <josh146@gmail.com>

Co-authored-by: David Ittah <dime10@users.noreply.github.com>
Co-authored-by: David Wierichs <davidwierichs@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Jack Y. Araz <jackaraz@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
antalszava added a commit that referenced this pull request Mar 16, 2022
* [Bug] Exclude Snapshot from adjoint backwards pass (#2289)

* Exclude Snapshot from adjoint backwards pass

* Add snapshots test for diff_methods

* Changelog

* Trigger rebuild

Co-authored-by: antalszava <antalszava@gmail.com>

* Work on consistency of `Operator`s (#2287)

* some inconsistencies

* swap basis

* undo duplicated wire in test

* changelog

* revert snapshot wires change

* unused import

* merge rc

* revert accidental changelog merge

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Batch run (#2069)

* batching ability for non-trainable inputs only following issue #2037

This function creates multiple circuit executions for batched input examples
and executes all batch inputs with the same trainable variables. The main
difference between the proposed version in the issue and this commit is the
input `argnum` this indicates the location of the given input hence gives the
ability to work across platforms.

* adaptation for batch execution

* improvements according to PR rules

* minor update according to PR errors

* modify according to codefactor-io

* reformatted code style

* adjust line lenght for linting

* update linting

* disable linting for too many arguments

* add testing for batch input in keras

* format test_keras.py

* add tests for remaining functions

* adapt the defaults

* update docstring according to @josh146 's suggestions

* remove keras sterilazation

* add batch_input to the docstring

* docstring update for readability: pennylane/transforms/batch_input.py

Co-authored-by: Josh Izaac <josh146@gmail.com>

* minor fix in documentation

* change assertion error to valueerror

* test valueerror

* modify the definition of argnum

* change argnum -> batch_idx

* update changelog-dev.md

* apply @josh146 's suggestions

* linting

* tests

* more

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* Circuit cutting: Tidy up documentation (#2279)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Apply suggestions from code review

Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Add link to communication graph

* Reword

* Move around

* fix

* fix

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Circuit cutting: update changelog (#2290)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Update changelog

* Link to docs page

* Update wording

* Apply suggestions from code review

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Move

* Update doc/releases/changelog-dev.md

Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Remove

* Update

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Minor gradient fixes (#2299)

* Produce consisten output shapes

In the absence of trainable params, some gradient transforms did not
produce an empty tuple yet like the rest of our functions.

* Minor formatting changes in param_shift_hessian

* Fix param_shift_hessian for all zero diff_methods

* Fix missing requires_grad & catch expected warning

* Changelog

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>

* Deprecate jacobian tape (#2306)

* Deprecate the Jacobian tape

* Deprecate tape subclasses

* changelog

* more test fixes

* tests

* Apply suggestions from code review

Co-authored-by: antalszava <antalszava@gmail.com>

Co-authored-by: antalszava <antalszava@gmail.com>

* `qml.generator` doc fixes (#2309)

* generator doc fixes

* more fixing

* Snapshot: remove temporary fixes for lightning device (#2291)

* Remove temp fixes for lightning

* Include diff_method tests for all devices

* Changelog

* Update CI to use pennylane-lightning dev

Co-authored-by: antalszava <antalszava@gmail.com>

* Docs fixes for v0.22.0 release (#2312)

* Fix Operator docstring hyperrefs

* Fix example for top-level matrix function

* Add example to Snapshot op docstring

* Fix tape drawing examples in docs

* Apply suggestions from code review

* Update pennylane/ops/snapshot.py

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Extend the conditional operations documentation (#2294)

* Add qfunc and else to cond's UsageDetails

* copy when inverting MV under the hood; add equivalent test case for inversion; add err msg when calling == of MV with unexpected typed obj; more examples

* format

* test docstr

* format

* correct examples

* format

* docstring

* have #2300 on rc too

* lambda example

* intro extend, docstring

* changelog PR num

* link

* note update

* updates

* Apply suggestions from code review

* updates

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Add `qml.generator(op)` backwards compatibility (#2305)

* Add qml.generator(op) backwards compatibility

* Apply suggestions from code review

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fix docstring

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fixed docs

* use better function refs

* pin pennylane-lightning version in CI (#2318)

* Amend docstring examples for `compute_matrix` and `compute_eigvals` (#2314)

* array()

* print() to get the output formatting correct

* revert array()

* print()

Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* Few docstring updates in prep for `v0.22.0` (#2311)

* updates

* - lower

* updates

* contract_tensor ref updates

* rename test file: batch_input

* explicit requires_grad upon param generation

* torch.Tensor as type

* Update pennylane/transforms/__init__.py

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* use tf in example

Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Support for controlled & adjoint in Snapshot/Barrier (#2315)

* controlled, adjoint

* Remove print

* Match adjoint signature of parent class

* Add tests for ctrl/adj support

* Update Barrier.adjoint signature

* Add ctrl test for Barrier

* Update tests/test_debugging.py

* Update tests/ops/test_snapshot.py

* Update tests/ops/test_snapshot.py

* changelog

* trigger build

Co-authored-by: Antal Szava <antalszava@gmail.com>

* ControlledQubitUnitary should raise `DecompositionUndefinedError` (#2320)

* DecompositionUndefinedError

* changelog

* trigger check

* `v0.22.0` release notes (#2303)

* version

* log ref

* rename

* sections; emojis

* format

* improvements order

* format

* addition; collabs; v0.21.0 collab alphabet fix

* reorder

* collab; deprecation item

* more PRs; collab list extended

* update

* sections

* op section break up

* correct matrix example

* suggestions

* suggestions

* a few more

* fix typo in code

* update

* no tf import

* update

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Pin Lightning `>=0.22` (#2324)

* pin lightning >=0.22

* Update tests.yml

Co-authored-by: Josh Izaac <josh146@gmail.com>

* bump the version to 0.22.1

* v0.22.1 release notes

* Fix queuing unexpected operators with qml.measure; changelog

* notes

Co-authored-by: David Ittah <dime10@users.noreply.github.com>
Co-authored-by: David Wierichs <davidwierichs@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Jack Y. Araz <jackaraz@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Guillermo Alonso-Linaje <65235481+KetpuntoG@users.noreply.github.com>
Jaybsoni added a commit that referenced this pull request Mar 18, 2022
…product ops (#2276)

* sorted wires to match eig vals when computing expectation value!

* Added tests and change log entry

* lint

* remove redundant lines of code

* small typo

* [Bug] Exclude Snapshot from adjoint backwards pass (#2289)

* Exclude Snapshot from adjoint backwards pass

* Add snapshots test for diff_methods

* Changelog

* Trigger rebuild

Co-authored-by: antalszava <antalszava@gmail.com>

* Work on consistency of `Operator`s (#2287)

* some inconsistencies

* swap basis

* undo duplicated wire in test

* changelog

* revert snapshot wires change

* unused import

* merge rc

* revert accidental changelog merge

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Batch run (#2069)

* batching ability for non-trainable inputs only following issue #2037

This function creates multiple circuit executions for batched input examples
and executes all batch inputs with the same trainable variables. The main
difference between the proposed version in the issue and this commit is the
input `argnum` this indicates the location of the given input hence gives the
ability to work across platforms.

* adaptation for batch execution

* improvements according to PR rules

* minor update according to PR errors

* modify according to codefactor-io

* reformatted code style

* adjust line lenght for linting

* update linting

* disable linting for too many arguments

* add testing for batch input in keras

* format test_keras.py

* add tests for remaining functions

* adapt the defaults

* update docstring according to @josh146 's suggestions

* remove keras sterilazation

* add batch_input to the docstring

* docstring update for readability: pennylane/transforms/batch_input.py

Co-authored-by: Josh Izaac <josh146@gmail.com>

* minor fix in documentation

* change assertion error to valueerror

* test valueerror

* modify the definition of argnum

* change argnum -> batch_idx

* update changelog-dev.md

* apply @josh146 's suggestions

* linting

* tests

* more

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* removed ordering in

* re-push to run tests

* push

* debugging

* Circuit cutting: Tidy up documentation (#2279)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Apply suggestions from code review

Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Add link to communication graph

* Reword

* Move around

* fix

* fix

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Circuit cutting: update changelog (#2290)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Update changelog

* Link to docs page

* Update wording

* Apply suggestions from code review

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Move

* Update doc/releases/changelog-dev.md

Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Remove

* Update

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Minor gradient fixes (#2299)

* Produce consisten output shapes

In the absence of trainable params, some gradient transforms did not
produce an empty tuple yet like the rest of our functions.

* Minor formatting changes in param_shift_hessian

* Fix param_shift_hessian for all zero diff_methods

* Fix missing requires_grad & catch expected warning

* Changelog

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>

* Deprecate jacobian tape (#2306)

* Deprecate the Jacobian tape

* Deprecate tape subclasses

* changelog

* more test fixes

* tests

* Apply suggestions from code review

Co-authored-by: antalszava <antalszava@gmail.com>

Co-authored-by: antalszava <antalszava@gmail.com>

* `qml.generator` doc fixes (#2309)

* generator doc fixes

* more fixing

* Snapshot: remove temporary fixes for lightning device (#2291)

* Remove temp fixes for lightning

* Include diff_method tests for all devices

* Changelog

* Update CI to use pennylane-lightning dev

Co-authored-by: antalszava <antalszava@gmail.com>

* Docs fixes for v0.22.0 release (#2312)

* Fix Operator docstring hyperrefs

* Fix example for top-level matrix function

* Add example to Snapshot op docstring

* Fix tape drawing examples in docs

* Apply suggestions from code review

* Update pennylane/ops/snapshot.py

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Extend the conditional operations documentation (#2294)

* Add qfunc and else to cond's UsageDetails

* copy when inverting MV under the hood; add equivalent test case for inversion; add err msg when calling == of MV with unexpected typed obj; more examples

* format

* test docstr

* format

* correct examples

* format

* docstring

* have #2300 on rc too

* lambda example

* intro extend, docstring

* changelog PR num

* link

* note update

* updates

* Apply suggestions from code review

* updates

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Add `qml.generator(op)` backwards compatibility (#2305)

* Add qml.generator(op) backwards compatibility

* Apply suggestions from code review

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fix docstring

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fixed docs

* use better function refs

* I think I have solved the issue

* removed prints

* clean up

* more cleaning

* pin pennylane-lightning version in CI (#2318)

* Added permutation on probability vector

* Finally fixed issue, just need to add tests and format

* general clean up

* More clean up

* added comment explaining prob vect permutation

* added tests for new device method get_ordered_subset()

* Update .github/workflows/tests.yml

* Update pennylane/_qubit_device.py

* Added more tests

* Lint

* Added changelog entry, fixed up tests

* Added PR link to changelog

* lint

* fixed tests

* typo in teests

* Fixed get_ordered_subset() to raise a more useful error message

* regex match error in tests

* Update doc/releases/changelog-dev.md

* Update pennylane/_device.py

Co-authored-by: antalszava <antalszava@gmail.com>

* Update doc/releases/changelog-dev.md

* Apply suggestions from code review

Co-authored-by: antalszava <antalszava@gmail.com>

* Update pennylane/_device.py

Co-authored-by: antalszava <antalszava@gmail.com>

* Renamed device method for getting ordered subset

* update name in qubit device

* Wrapped permuting logic into private method

* updated tests using pytest.parameterize

* moved tests to device test suite

* Moved tests to device test suite

* added doc string to tests

* lint and added check for type of mapped wires

* updated device test to use tol as a func instead of a val and run on proper device

* typo in tests

* address codefactor

* more code factor

* codefactor

* override global variable name

* lint

* Apply suggestions from code review

Co-authored-by: antalszava <antalszava@gmail.com>

* format

* updated comment in _permute_wires func

* updated doc strings in test_measaurements.py

Co-authored-by: David Ittah <dime10@users.noreply.github.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: David Wierichs <davidwierichs@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Jack Y. Araz <jackaraz@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
antalszava added a commit that referenced this pull request Mar 21, 2022
* Fix output shape of batch transforms

Remove squeezing from current batch transforms outputs like
gradient_transform and hessian_transform, and instead produce the same
output shape that is generated in qml.QNode directly at the
batch_transform level.

* Do contract with cjac=[1] to remove unit dimension

* Fix var_param_shift iterating over 0d array

* Fix extra dimension in var_param_shift

Due to the mask always being 2d, there is an extra dimension for
scalar-valued QNodes, even after contraction with the classical
jacobian. Adjust the mask's shape to match that of the arrays holding
the result values.

* Fix mitigate processing_fn

* Fix tests expecting unit dimensions

* Fix dimensionality in param_shift_cv

* Fix metric tensor tape processing

* [Bug] Exclude Snapshot from adjoint backwards pass (#2289)

* Exclude Snapshot from adjoint backwards pass

* Add snapshots test for diff_methods

* Changelog

* Trigger rebuild

Co-authored-by: antalszava <antalszava@gmail.com>

* Work on consistency of `Operator`s (#2287)

* some inconsistencies

* swap basis

* undo duplicated wire in test

* changelog

* revert snapshot wires change

* unused import

* merge rc

* revert accidental changelog merge

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Batch run (#2069)

* batching ability for non-trainable inputs only following issue #2037

This function creates multiple circuit executions for batched input examples
and executes all batch inputs with the same trainable variables. The main
difference between the proposed version in the issue and this commit is the
input `argnum` this indicates the location of the given input hence gives the
ability to work across platforms.

* adaptation for batch execution

* improvements according to PR rules

* minor update according to PR errors

* modify according to codefactor-io

* reformatted code style

* adjust line lenght for linting

* update linting

* disable linting for too many arguments

* add testing for batch input in keras

* format test_keras.py

* add tests for remaining functions

* adapt the defaults

* update docstring according to @josh146 's suggestions

* remove keras sterilazation

* add batch_input to the docstring

* docstring update for readability: pennylane/transforms/batch_input.py

Co-authored-by: Josh Izaac <josh146@gmail.com>

* minor fix in documentation

* change assertion error to valueerror

* test valueerror

* modify the definition of argnum

* change argnum -> batch_idx

* update changelog-dev.md

* apply @josh146 's suggestions

* linting

* tests

* more

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* Fix batch execution documented return type

* Remove obsolete safe_squeeze

* Circuit cutting: Tidy up documentation (#2279)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Apply suggestions from code review

Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Add link to communication graph

* Reword

* Move around

* fix

* fix

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>

* Circuit cutting: update changelog (#2290)

* Redo imports

* Update docs

* Update wording

* Fix ID

* Add to docs

* Add to docs

* Fix

* Update docstrings

* Use nx.MultiDiGraph

* Update fragment_graph

* Update graph_to_tape

* Update remap_tape_wires

* Rename to expand_fragment_tape

* Update expand_fragment_tape

* Update CutStrategy

* Update qcut_processing_fn

* Remove note

* Update cut_circuit

* Work on docs

* Add to docs

* Update pennylane/transforms/qcut.py

* Add to changelog

* Move device definition

* Mention WireCut

* Move details

* QCut module

* Fix image location

* Fix init

* Update changelog

* Link to docs page

* Update wording

* Apply suggestions from code review

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Move

* Update doc/releases/changelog-dev.md

Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Remove

* Update

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Minor gradient fixes (#2299)

* Produce consisten output shapes

In the absence of trainable params, some gradient transforms did not
produce an empty tuple yet like the rest of our functions.

* Minor formatting changes in param_shift_hessian

* Fix param_shift_hessian for all zero diff_methods

* Fix missing requires_grad & catch expected warning

* Changelog

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>

* Deprecate jacobian tape (#2306)

* Deprecate the Jacobian tape

* Deprecate tape subclasses

* changelog

* more test fixes

* tests

* Apply suggestions from code review

Co-authored-by: antalszava <antalszava@gmail.com>

Co-authored-by: antalszava <antalszava@gmail.com>

* `qml.generator` doc fixes (#2309)

* generator doc fixes

* more fixing

* Move tape result squeezing to each transform

The previous placement of the squezing inside the batch transform
assumes that all uses of the batch transform are similar to that of the
gradient transforms, which is not the case. To avoid breaking other type
of transforms with this change, the squeezing is now placed inside each
gradient transform.

Tapes constructed from QNodes now also carry the `_qfunc_output`
attribute.

* Fix linting errors

* Snapshot: remove temporary fixes for lightning device (#2291)

* Remove temp fixes for lightning

* Include diff_method tests for all devices

* Changelog

* Update CI to use pennylane-lightning dev

Co-authored-by: antalszava <antalszava@gmail.com>

* Don't stack the tape result list, only each squeeze each element

* Fix `_qfunc_output` missing from expanded tape

* Revert "Fix metric tensor tape processing"

This reverts commit 03479ac.

* Fix issue when stacking scalars

The `np.stack` cannot deal with scalar arrays, which can just be skipped
in such cases.
This situation can occur in the gradient transforms when the output is a
scalar array of type object.

* Docs fixes for v0.22.0 release (#2312)

* Fix Operator docstring hyperrefs

* Fix example for top-level matrix function

* Add example to Snapshot op docstring

* Fix tape drawing examples in docs

* Apply suggestions from code review

* Update pennylane/ops/snapshot.py

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Extend the conditional operations documentation (#2294)

* Add qfunc and else to cond's UsageDetails

* copy when inverting MV under the hood; add equivalent test case for inversion; add err msg when calling == of MV with unexpected typed obj; more examples

* format

* test docstr

* format

* correct examples

* format

* docstring

* have #2300 on rc too

* lambda example

* intro extend, docstring

* changelog PR num

* link

* note update

* updates

* Apply suggestions from code review

* updates

Co-authored-by: Christina Lee <christina@xanadu.ai>

* Add `qml.generator(op)` backwards compatibility (#2305)

* Add qml.generator(op) backwards compatibility

* Apply suggestions from code review

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fix docstring

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* fixed docs

* use better function refs

* Remove `safe_squeeze` tests

* pin pennylane-lightning version in CI (#2318)

* Amend docstring examples for `compute_matrix` and `compute_eigvals` (#2314)

* array()

* print() to get the output formatting correct

* revert array()

* print()

Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>

* Few docstring updates in prep for `v0.22.0` (#2311)

* updates

* - lower

* updates

* contract_tensor ref updates

* rename test file: batch_input

* explicit requires_grad upon param generation

* torch.Tensor as type

* Update pennylane/transforms/__init__.py

Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* use tf in example

Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Support for controlled & adjoint in Snapshot/Barrier (#2315)

* controlled, adjoint

* Remove print

* Match adjoint signature of parent class

* Add tests for ctrl/adj support

* Update Barrier.adjoint signature

* Add ctrl test for Barrier

* Update tests/test_debugging.py

* Update tests/ops/test_snapshot.py

* Update tests/ops/test_snapshot.py

* changelog

* trigger build

Co-authored-by: Antal Szava <antalszava@gmail.com>

* ControlledQubitUnitary should raise `DecompositionUndefinedError` (#2320)

* DecompositionUndefinedError

* changelog

* trigger check

* `v0.22.0` release notes (#2303)

* version

* log ref

* rename

* sections; emojis

* format

* improvements order

* format

* addition; collabs; v0.21.0 collab alphabet fix

* reorder

* collab; deprecation item

* more PRs; collab list extended

* update

* sections

* op section break up

* correct matrix example

* suggestions

* suggestions

* a few more

* fix typo in code

* update

* no tf import

* update

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Pin Lightning `>=0.22` (#2324)

* pin lightning >=0.22

* Update tests.yml

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Review: comment fixes

Co-authored-by: Josh Izaac <josh146@gmail.com>

* Review: simplify code

Co-authored-by: David Wierichs <davidwierichs@gmail.com>

* Add tests demonstrating bug resolution

* Changelog

* Undo difficult to test change for CV device

Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: David Wierichs <davidwierichs@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Jack Y. Araz <jackaraz@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: anthayes92 <34694788+anthayes92@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Christina Lee <christina@xanadu.ai>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants