-
Notifications
You must be signed in to change notification settings - Fork 586
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
Remove complex warning from operator matrices #1802
Conversation
Hello. You may have forgotten to update the changelog!
|
@glassnotes the only operator I was unable to rewrite was |
Codecov Report
@@ Coverage Diff @@
## master #1802 +/- ##
=======================================
Coverage 98.91% 98.92%
=======================================
Files 207 207
Lines 15641 15666 +25
=======================================
+ Hits 15472 15497 +25
Misses 169 169
Continue to review full report at Codecov.
|
if interface == "tensorflow": | ||
c = qml.math.cast(c, "complex128") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tracked down another complex warning here. @glassnotes, I fear more are hiding still 😆
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm very confused about this one, is it not doing the exact same thing but in two lines? Or does doing the casting in the other frameworks spit out a warning while tensorflow does not? 😕
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep! during the backwards pass, the reverse will happen - a complex value will be cast to real. Which... generates the warning in PyTorch and Autograd 🤦
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤦♀️ indeed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @josh146 ! I looked through the list, does PhaseShift
(and controlled version) also have to be converted? It uses diag of [1, imag thing]
. (Similarly CRot
, and the U1
and U2
).
Re. OrbitalRotation
, the matrix appears to be purely real, is it also spitting out a warning?
if interface == "tensorflow": | ||
c = qml.math.cast(c, "complex128") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm very confused about this one, is it not doing the exact same thing but in two lines? Or does doing the casting in the other frameworks spit out a warning while tensorflow does not? 😕
|
||
mat = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, c, -s], [0, 0, s, c]] | ||
return qml.math.stack([qml.math.stack(row) for row in mat]) | ||
mat = qml.math.diag([1, 1, c, c]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary here, since CRY
is purely real?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
weirdly yes, for the same reason that OrbitalRotation
also raises the warning. I'm not entirely sure why this is an issue though?? So weird.
Weirdly
Yep :( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have run the tests locally, and this fixes the cast warnings from popping up for autograd/torch!
|
||
# first stack each row and then stack all the rows | ||
U = qml.math.stack([qml.math.stack(row) for row in matrix], axis=0) | ||
U = diag + qml.math.stack( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wait why does this fix it 🤯 what makes the diagonal part different???????????
This PR has made me so confused
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at some point in the future other devs are going to look at this and just be like why is the matrix coded like this hahahaha
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know, I'm just totally baffled! It's the exact same matrix! We can always leave a humorous warning for the next dev who looks at it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
... which, realistically, is going to be us and @mariaschuld while doing the operator refactor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@josh146 Hahaha, having a laugh reading through this, and finding myself in this statement:
at some point in the future other devs are going to look at this and just be like why is the matrix coded like this hahahaha
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In retrospect we should have added comments to the code, linking back to this PR for context to future developers 😆
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wait @dwierichs how did you find this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering the same thing! 😂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am going to implement batching for parametrized operations and therefore need to modify this code :D
The version I'm currently going with is
@staticmethod
def compute_matrix(theta):
c = qml.math.cos(theta / 2)
s = qml.math.sin(theta / 2)
if qml.math.get_interface(theta)=="tensorflow":
c = qml.math.cast_like(c, 1j)
s = qml.math.cast_like(s, 1j)
mat = qml.math.stack([qml.math.stack([c, s]), qml.math.stack([s, c])])
return mat * qml.math.array([[1+0j, -1j], [-1j, 1+0j]], like=mat)
which is batch-compatible (i.e. theta
being non-scalar) and also is 20% or so faster in the scalar case :)
* pl + qchem versions * draft release notes * example + changelog-dev.md * changelog-dev * batch_params output * shorten U decomp example to print well * need orbitals kwarg when using hf_state as positional came after kwarg * need orbitals kwarg when using hf_state as positional came after kwarg * trainable params * orphan * contributors * notes * HF solver example * HF solver example * HF solver text * doc item for #1724 * item for 1769 * doc item for #1792 * #1804, #1802 * #1824 * pyscf pin * PR links * resolve changelog (#1858) Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> * Update release_notes.md * Apply HF wording suggestion from Josh * fix batch params docstring * update * merge batch_params dim_output * new shape for the output of the batch_params example * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * transforms order change as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * shorten ex as suggested * shorten insert example * move classical jac change to improvements as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * move is_independent to improvements * remove sentence as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * change the order of the improvements based on the suggestions * rephrase qml.grad/qml.jacobian deprecation date * Update doc/releases/changelog-0.19.0.md * no current release tag for v0.18.0 * no -dev * fix * fix * correct GateFabric api link * JAX interface as improvement * create_expand_fn suggestion * requires_grad.png * GateFabric full path Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com>
* extend the changelog item of the init module deprecation (#1833) * add sorting to `get_parameters` * undo accidental direct push to v0.19.0-rc0 * Remove template decorator from PennyLane functions (#1808) (#1835) * Remove template decorator. * Correct import and changelog. * Change interferometer. * Update pennylane/templates/broadcast.py Co-authored-by: antalszava <antalszava@gmail.com> * Update doc/releases/changelog-dev.md Co-authored-by: antalszava <antalszava@gmail.com> * Update pennylane/templates/broadcast.py Co-authored-by: antalszava <antalszava@gmail.com> * Update from review. * More import removed. * Update parametric ops. * Update pennylane/templates/subroutines/arbitrary_unitary.py Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> * Update `QNGOptimizer` to handle deprecations (#1834) * pass approx option in QNG if need be * convert to array instead of list; add recwarn to QNG test case * Update pennylane/optimize/qng.py Co-authored-by: Josh Izaac <josh146@gmail.com> * add expval(H) with two input params test case * deprecate diag_approx keyword for QNGOptimizer * format * docstring * changelog Co-authored-by: Josh Izaac <josh146@gmail.com> * Sorted `tape.get_parameters` (#1836) * sorted `get_parameters` * adapt PR count * fix metric tensor tests * also sort in `set_parameters` * Fix bug to ensure qml.math.dot works in autograph mode (#1842) * Fix bug to ensure qml.math.dot works in autograph mode * changelog Co-authored-by: antalszava <antalszava@gmail.com> * Update `expand_fn` (rc) (#1838) * expand_fn * changes just as in master * new lines * Ensure that the correct version of keras is installed for TensorFlow CI (#1847) * Add deprecation warning for default.tensor (#1851) * add warning and test * add changelog * Update pennylane/beta/devices/default_tensor.py Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: antalszava <antalszava@gmail.com> * fix docstrings in hf module (#1853) * fix hf docstrings * Update pennylane/hf/hartree_fock.py Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> * Docstring updates of new features before the release (#1859) * doc format * docstring example * Hide :orphan: from displaying in the release notes (#1863) * Update single_dispatch.py (#1857) * Add support for abstract tensors in AmplitudeEmbedding (#1845) * Add support for abstract tensors in AmplitudeEmbedding * add tests * update changelog * Apply suggestions from code review Co-authored-by: Romain <rmoyard@gmail.com> * fix * fix * fix * Add batchtracer support * Update tests/math/test_is_abstract.py Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: antalszava <antalszava@gmail.com> * Add documentation for the hf module (#1839) * create rst file for hf module * Documentation Updates (#1868) * documentation updates * Update doc/introduction/interfaces/numpy.rst * Apply suggestions from code review Co-authored-by: antalszava <antalszava@gmail.com> * scipy minimize update * collections of qnode section re-added * new lines Co-authored-by: antalszava <antalszava@gmail.com> * Update deprecated use of `qml.grad`/`qml.jacobian` in docstrings (#1860) * autograd device requires_grad * math.quantum example * tracker * tracker 2nd * batch_transform * batch_params * fix batch params docstring * update * Update pennylane/transforms/batch_params.py Co-authored-by: antalszava <antalszava@gmail.com> * `qml.math.is_independent` no deprecation warnings with `qml.grad`/`qml.jacobian` (#1862) * is_independent no deprecation warning * is_independent no deprecation warning tests * docstring * formatting * mark arrayboxes as trainable still; adjust test case (no autograd warning) * define requires_grad=True for random args only with Autograd (not JAX) to avoid errors with JAX tracers * add in warning checks such that warnings are for sure not emitted * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: Christina Lee <christina@xanadu.ai> * change example (#1875) * `v0.19.0` release notes (#1852) * pl + qchem versions * draft release notes * example + changelog-dev.md * changelog-dev * batch_params output * shorten U decomp example to print well * need orbitals kwarg when using hf_state as positional came after kwarg * need orbitals kwarg when using hf_state as positional came after kwarg * trainable params * orphan * contributors * notes * HF solver example * HF solver example * HF solver text * doc item for #1724 * item for 1769 * doc item for #1792 * #1804, #1802 * #1824 * pyscf pin * PR links * resolve changelog (#1858) Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> * Update release_notes.md * Apply HF wording suggestion from Josh * fix batch params docstring * update * merge batch_params dim_output * new shape for the output of the batch_params example * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * transforms order change as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * shorten ex as suggested * shorten insert example * move classical jac change to improvements as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * move is_independent to improvements * remove sentence as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * change the order of the improvements based on the suggestions * rephrase qml.grad/qml.jacobian deprecation date * Update doc/releases/changelog-0.19.0.md * no current release tag for v0.18.0 * no -dev * fix * fix * correct GateFabric api link * JAX interface as improvement * create_expand_fn suggestion * requires_grad.png * GateFabric full path Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> * Tkt rc (#1870) * changed readme and index tkt * kept changelog * Changed docs image * Deleted changelog * Apply suggestions from code review Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com> * removed readme tkt * Removed readme * README.md form release candidate Co-authored-by: Catalina Albornoz <catalina@xanadu.ai> Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com> * Re-add the dev changelog to the release notes * tests/transforms/test_batch_params.py from master * use {} for dicts to make codecov happy * update batch params Co-authored-by: dwierichs <davidwierichs@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Maria Schuld <mariaschuld@gmail.com> Co-authored-by: Christina Lee <christina@xanadu.ai> Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com> Co-authored-by: Guillermo Alonso-Linaje <65235481+KetpuntoG@users.noreply.github.com> Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> Co-authored-by: CatalinaAlbornoz <albornoz.catalina@hotmail.com> Co-authored-by: Catalina Albornoz <catalina@xanadu.ai> Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
* extend the changelog item of the init module deprecation (#1833) * add sorting to `get_parameters` * undo accidental direct push to v0.19.0-rc0 * Remove template decorator from PennyLane functions (#1808) (#1835) * Remove template decorator. * Correct import and changelog. * Change interferometer. * Update pennylane/templates/broadcast.py Co-authored-by: antalszava <antalszava@gmail.com> * Update doc/releases/changelog-dev.md Co-authored-by: antalszava <antalszava@gmail.com> * Update pennylane/templates/broadcast.py Co-authored-by: antalszava <antalszava@gmail.com> * Update from review. * More import removed. * Update parametric ops. * Update pennylane/templates/subroutines/arbitrary_unitary.py Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> * Update `QNGOptimizer` to handle deprecations (#1834) * pass approx option in QNG if need be * convert to array instead of list; add recwarn to QNG test case * Update pennylane/optimize/qng.py Co-authored-by: Josh Izaac <josh146@gmail.com> * add expval(H) with two input params test case * deprecate diag_approx keyword for QNGOptimizer * format * docstring * changelog Co-authored-by: Josh Izaac <josh146@gmail.com> * Sorted `tape.get_parameters` (#1836) * sorted `get_parameters` * adapt PR count * fix metric tensor tests * also sort in `set_parameters` * Fix bug to ensure qml.math.dot works in autograph mode (#1842) * Fix bug to ensure qml.math.dot works in autograph mode * changelog Co-authored-by: antalszava <antalszava@gmail.com> * Update `expand_fn` (rc) (#1838) * expand_fn * changes just as in master * new lines * Ensure that the correct version of keras is installed for TensorFlow CI (#1847) * Add deprecation warning for default.tensor (#1851) * add warning and test * add changelog * Update pennylane/beta/devices/default_tensor.py Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: antalszava <antalszava@gmail.com> * fix docstrings in hf module (#1853) * fix hf docstrings * Update pennylane/hf/hartree_fock.py Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> * Docstring updates of new features before the release (#1859) * doc format * docstring example * Hide :orphan: from displaying in the release notes (#1863) * Update single_dispatch.py (#1857) * Add support for abstract tensors in AmplitudeEmbedding (#1845) * Add support for abstract tensors in AmplitudeEmbedding * add tests * update changelog * Apply suggestions from code review Co-authored-by: Romain <rmoyard@gmail.com> * fix * fix * fix * Add batchtracer support * Update tests/math/test_is_abstract.py Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: antalszava <antalszava@gmail.com> * Add documentation for the hf module (#1839) * create rst file for hf module * Documentation Updates (#1868) * documentation updates * Update doc/introduction/interfaces/numpy.rst * Apply suggestions from code review Co-authored-by: antalszava <antalszava@gmail.com> * scipy minimize update * collections of qnode section re-added * new lines Co-authored-by: antalszava <antalszava@gmail.com> * Update deprecated use of `qml.grad`/`qml.jacobian` in docstrings (#1860) * autograd device requires_grad * math.quantum example * tracker * tracker 2nd * batch_transform * batch_params * fix batch params docstring * update * Update pennylane/transforms/batch_params.py Co-authored-by: antalszava <antalszava@gmail.com> * `qml.math.is_independent` no deprecation warnings with `qml.grad`/`qml.jacobian` (#1862) * is_independent no deprecation warning * is_independent no deprecation warning tests * docstring * formatting * mark arrayboxes as trainable still; adjust test case (no autograd warning) * define requires_grad=True for random args only with Autograd (not JAX) to avoid errors with JAX tracers * add in warning checks such that warnings are for sure not emitted * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> * Update pennylane/transforms/batch_params.py Co-authored-by: Christina Lee <christina@xanadu.ai> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: Christina Lee <christina@xanadu.ai> * change example (#1875) * `v0.19.0` release notes (#1852) * pl + qchem versions * draft release notes * example + changelog-dev.md * changelog-dev * batch_params output * shorten U decomp example to print well * need orbitals kwarg when using hf_state as positional came after kwarg * need orbitals kwarg when using hf_state as positional came after kwarg * trainable params * orphan * contributors * notes * HF solver example * HF solver example * HF solver text * doc item for #1724 * item for 1769 * doc item for #1792 * #1804, #1802 * #1824 * pyscf pin * PR links * resolve changelog (#1858) Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> * Update release_notes.md * Apply HF wording suggestion from Josh * fix batch params docstring * update * merge batch_params dim_output * new shape for the output of the batch_params example * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * transforms order change as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * shorten ex as suggested * shorten insert example * move classical jac change to improvements as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * move is_independent to improvements * remove sentence as suggested * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * Update doc/releases/changelog-0.19.0.md Co-authored-by: Josh Izaac <josh146@gmail.com> * change the order of the improvements based on the suggestions * rephrase qml.grad/qml.jacobian deprecation date * Update doc/releases/changelog-0.19.0.md * no current release tag for v0.18.0 * no -dev * fix * fix * correct GateFabric api link * JAX interface as improvement * create_expand_fn suggestion * requires_grad.png * GateFabric full path Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> * Tkt rc (#1870) * changed readme and index tkt * kept changelog * Changed docs image * Deleted changelog * Apply suggestions from code review Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com> * removed readme tkt * Removed readme * README.md form release candidate Co-authored-by: Catalina Albornoz <catalina@xanadu.ai> Co-authored-by: antalszava <antalszava@gmail.com> Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com> * contributors * Update the norm check for `QubitStateVector` in `default.qubit` (v0.19.1) (#1924) * norm check fix * 0.19.1 changelog * 0.19.1 bump * pr number * changelog for 0.19.1 in the release notes * torch coerce change, qml.math for Hermitian * test changes * readd torch_device kwarg * format * use torch device arg and add cuda_was_set branch * polish * TestApply cover with torch_device; update the def for OrbitalRotation to be compatible with CUDA * Add notes to tests using execute; CRX + CRY convert_like; Integration tests passing * passthru test * more tests * format * coerce refine + test * tidy * branch off for Torch * def self._torch_device_requested and extend check in execute * test and further adjustments * format * changelog * Mark the kernel test not converging as xfail (#1918) * mark the kernel test not converging as xfail * format * skipif * skipif marker * format * changelog * lint * todo no longer relevant * PauliRot identity matrix consider Torch * format * paulirot identity matrix test * add gpu marker * more torch_device usage * more fixes with finite diff; update tests * qml.math.allclose * Move the state to device conversion from apply_operation to the execute method because it logically belongs there better * Move the state to device conversion within if statement, add comment; change a test to avoid raising a warning * format * error message; gpu marker on the coercion test in qml.math; error matching * format * warning * warning test * no print * format * Fix parametric ops GPU compatibility (`v0.19.1`) (#1927) * torch coerce change, qml.math for Hermitian * test changes * readd torch_device kwarg * format * use torch device arg and add cuda_was_set branch * polish * TestApply cover with torch_device; update the def for OrbitalRotation to be compatible with CUDA * Add notes to tests using execute; CRX + CRY convert_like; Integration tests passing * passthru test * more tests * format * coerce refine + test * tidy * branch off for Torch * def self._torch_device_requested and extend check in execute * test and further adjustments * format * changelog * Mark the kernel test not converging as xfail (#1918) * mark the kernel test not converging as xfail * format * skipif * skipif marker * format * changelog * lint * todo no longer relevant * PauliRot identity matrix consider Torch * format * paulirot identity matrix test * add gpu marker * more torch_device usage * more fixes with finite diff; update tests * qml.math.allclose * Move the state to device conversion from apply_operation to the execute method because it logically belongs there better * Move the state to device conversion within if statement, add comment; change a test to avoid raising a warning * format * error message; gpu marker on the coercion test in qml.math; error matching * format * warning * warning test * no print * format * contributors for the bug fix release * changelog * Update doc/development/release_notes.md * import order * Update tests/devices/test_default_qubit_torch.py * resolve conflicts * remove _apply_operation as a whole * use f string instead of format call to make codefactor happy * use f string instead of format call in default.qubit to make codefactor happy * more f strings; {} instead of dict() * format * PauliRot Torch run on CPU too to increase coverage * format Co-authored-by: dwierichs <davidwierichs@gmail.com> Co-authored-by: Romain <rmoyard@gmail.com> Co-authored-by: Josh Izaac <josh146@gmail.com> Co-authored-by: Maria Schuld <mariaschuld@gmail.com> Co-authored-by: Christina Lee <christina@xanadu.ai> Co-authored-by: soranjh <40344468+soranjh@users.noreply.github.com> Co-authored-by: Guillermo Alonso-Linaje <65235481+KetpuntoG@users.noreply.github.com> Co-authored-by: agran2018 <45397799+agran2018@users.noreply.github.com> Co-authored-by: CatalinaAlbornoz <albornoz.catalina@hotmail.com> Co-authored-by: Catalina Albornoz <catalina@xanadu.ai> Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Context: After #1749 was merged, some operations in PennyLane would raise the warning
in Pytorch, or
in Autograd. The issue seems to be the usage of
qml.math.stack()
--- this warning seems to be emitted when the constructed matrix contains a mixture of real and complex elements.Description of the Change: Rewrites several operator matrices using alternatives to
qml.math.stack
, to ensure that the complex elements and the real elements are constructed separately, and then combined using array-level operations.Benefits: Removes the complex warning.
Possible Drawbacks: Slightly less readability in some operator constructions
Related GitHub Issues: