Skip to content

Commit

Permalink
Development branch (#340)
Browse files Browse the repository at this point in the history
* fix

* Adds demo on unitary designs (#252)

* Initial commit; introductory details plus skeleton of remainder.

* Add details on complex projective and unitary designs.

* Add related demo.

* Update repo to use the PennyLane and QChem v0.15.1  (#262)

* Update repo to use the PennyLane and QChem v0.15.1

* more

* Major updates to section on twirling and fidelity.

* Major updates; finish code example.

* Change PL branch; update entry in TOC.

* Upload thumbnail.

* Apply suggestions from code review

* Rewrite example to use qfunc transforms.

* Add lots of references. Start conclusion.

* First full draft of demo.

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Fix dashes. Move multi-qubit Clifford discussion into main text.

* Add spherical design example. Cut complex projective design content.

* Elaborate on Clifford group and spherical designs.

* Rearrange some text.

* Apply suggestions from code review

* Streamline apply Clifford function.

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Remove histogram.

* Update text and add new graphics.

* Tweak text.

* Remove explicit deviation amount.

* Update requirements.txt

* Revert spurious changes to kernel tutorial.

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Update date.

* Remove extra line from merge.

* Fix link to Haar demo.

* Actually fix the link.

Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Merge the `master` branch into `dev` (#283)

* Update repo to use the PennyLane and QChem v0.15.1  (#262)

* Update repo to use the PennyLane and QChem v0.15.1

* more

* Fixed typos in qubit rotation tutorial (#264)

1. 'a measurement' instead of 'an measurement'
2. a compound predicate should not have a separating comma

* Upgrade sphinx-gallery to v0.9 (#268)

* Update requirements.txt

* Update conf.py

* Update requirements.txt

* Update config.yml

* Adds Feedback-Based Quantum Optimization (FALQON) Tutorial (#265)

* initial commit

* notebooks

* Add basic theory

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* change

* change

* changes

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* bird seed

* change

* Update falqon_david-checkpoint.ipynb

* Add real data set

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* python file

* adds maxclique image

* bird seed

* edits to tutorial

* tiny change

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Add short benchmark summary

* change

* change

* change

* tutorial changes

* final changes

* change

* Delete falqon_david-checkpoint.ipynb

* cite

* link

* changes

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* change

* JM review

* Various minor changes, update benchmark data

* Implement Olivia's suggestions except phi normalization and math at start

* Change phi normalization

* Simplify introductory math

* Fix math error

* Fix math error

* Update tutorial_falqon.py

* Update tutorial_falqon.py

* Update tutorial_falqon.py

* change

* change

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* change

* change

* Update demonstrations/tutorial_falqon.py

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Update falqon.py

* Apply suggestions from code review

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* small change

Co-authored-by: David Wakeham <david.a.wakeham@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* use adjoint (#272)

* CH1132 | Fix TOC Bug In Xanadu Themes (#274)

* Table of contents no longer disapears at the bottom of page

* Adds missing semi-colon

* Revert psycf version

* Updates comments

* TOC top matches docs page

* Reverts _static/thumbs/

* Update tutorial_falqon.py

* CH4398 | Fix Community Card Anchors (#275)

* Page scrolls to card if hash is present in URL

* Adds id to card that consists of first letters of title of card and author last name

* IDs are more readable

* Hovering over active card does not remove active class

* IDs no longer have accents

* Active class remains on cards

* CH4568 | Fix Size Of Community Demo Cards (#277)

* Card header uses flexbox

* Cards are same height, text is scrollable

* Descriptions are the same height and overflow is hidden

* Updates read more button

* Overflowing text shows read more link

* Adds modals to read descriptions

* Removes default button styling

* Fixes button alignment

* Community cards are responsive

* JS handles text overflow on page resizing

* Removes unnecessary p tags

* Update videos.rst (#278)

* Update demos_research.rst

* Fix FALQON Tutorial (#280)

* change

* fix

* Made sure to keep track of running best_cost (#281)

This ensures that our computed output_bloch_v is truly the best one encountered in gradient descent, instead of one computed by just any parameters that result in a cost less than our very first initial cost.

* increment cache number

* Tutorial Classical Shadows  (#263)

* Create tutorial_classical_shadows.py

* first working version for single qubit

* added comments, multiqubit is working

* adding rough intro to tutorial, metadata, and integrating with qml docs

* Formatting the comments

* adding shadow_state() and snapshot_state()

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>

* adding image and updating introduction

* integrating test code into demo

* adding section headings

* 90 character limit to ensure page is rendered correctly

* Added background to classical shadows

* adding theory portion to state reconstruction section

* small fix on heading

* minor updates to the state reconstruction section

* updating state reconstruction tests

* state reconstruction example

* Wrapped up background

* Restructuring, introducing testing

* Got rid of duplicate information

* quick fixes/rearrangement

* median of means, formatting

* minor fixes

* edits/flow

* Estimating Pauli observables introduction

* adding expected test code-blocks

* fixed math

* Adding final example and shadow bound test

* fix typos

* ran black, added part about pytest, added test output, added random seed

* dots

* adding card image

* fix to meta data

* small typo's

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* moving demo to research category

* fixing citations

* Update demonstrations/tutorial_classical_shadows.py

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

* fixing broken equation

* removing tests

* changing plot

* Addressing comments pt 1

* Remove type suggestions.

* black

* small fixes, added conclusion

* Changed shadow to two seperate arrays, simplified observable estimator.

* added comments

* small typos

* Make docstrings consistent.

* Fix citations

* Small improvements to text flow

* ran through spellcheck

* Changed final figure, addressed most comments.

* A single dot.

* Update demos_research.rst

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Changed

* Bullet rendering issue

* print formatting fix

* unblack

* Apply suggestions from code review

* Apply suggestions from code review

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

* Explain single clifford ensemble

* Apply suggestions from code review

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Adding Header Image to Classical Shadows Demo (#284)

* Create tutorial_classical_shadows.py

* first working version for single qubit

* added comments, multiqubit is working

* adding rough intro to tutorial, metadata, and integrating with qml docs

* Formatting the comments

* adding shadow_state() and snapshot_state()

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>

* adding image and updating introduction

* integrating test code into demo

* adding section headings

* 90 character limit to ensure page is rendered correctly

* Added background to classical shadows

* adding theory portion to state reconstruction section

* small fix on heading

* minor updates to the state reconstruction section

* updating state reconstruction tests

* state reconstruction example

* Wrapped up background

* Restructuring, introducing testing

* Got rid of duplicate information

* quick fixes/rearrangement

* median of means, formatting

* minor fixes

* edits/flow

* Estimating Pauli observables introduction

* adding expected test code-blocks

* fixed math

* Adding final example and shadow bound test

* fix typos

* ran black, added part about pytest, added test output, added random seed

* dots

* adding card image

* fix to meta data

* small typo's

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* moving demo to research category

* fixing citations

* Update demonstrations/tutorial_classical_shadows.py

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

* fixing broken equation

* removing tests

* changing plot

* Addressing comments pt 1

* Remove type suggestions.

* black

* small fixes, added conclusion

* Changed shadow to two seperate arrays, simplified observable estimator.

* added comments

* small typos

* Make docstrings consistent.

* Fix citations

* Small improvements to text flow

* ran through spellcheck

* Changed final figure, addressed most comments.

* A single dot.

* Update demos_research.rst

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Changed

* Bullet rendering issue

* print formatting fix

* unblack

* Apply suggestions from code review

* Apply suggestions from code review

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

* Explain single clifford ensemble

* Apply suggestions from code review

* Update demonstrations/tutorial_classical_shadows.py

* adding header image

* Update demonstrations/tutorial_classical_shadows.py

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tommy Vo Tran <tomvotran@ucla.edu>
Co-authored-by: Jack Ceroni <jackceroni@gmail.com>
Co-authored-by: David Wakeham <david.a.wakeham@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Andrew Gardhouse <AndrewGardhouse@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>
Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>

* Set `shots=1000` in device (#286)

* Update repo to use the PennyLane and QChem v0.15.1  (#262)

* Update repo to use the PennyLane and QChem v0.15.1

* more

* Fixed typos in qubit rotation tutorial (#264)

1. 'a measurement' instead of 'an measurement'
2. a compound predicate should not have a separating comma

* Upgrade sphinx-gallery to v0.9 (#268)

* Update requirements.txt

* Update conf.py

* Update requirements.txt

* Update config.yml

* Adds Feedback-Based Quantum Optimization (FALQON) Tutorial (#265)

* initial commit

* notebooks

* Add basic theory

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* change

* change

* changes

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* bird seed

* change

* Update falqon_david-checkpoint.ipynb

* Add real data set

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* python file

* adds maxclique image

* bird seed

* edits to tutorial

* tiny change

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Add short benchmark summary

* change

* change

* change

* tutorial changes

* final changes

* change

* Delete falqon_david-checkpoint.ipynb

* cite

* link

* changes

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* change

* JM review

* Various minor changes, update benchmark data

* Implement Olivia's suggestions except phi normalization and math at start

* Change phi normalization

* Simplify introductory math

* Fix math error

* Fix math error

* Update tutorial_falqon.py

* Update tutorial_falqon.py

* Update tutorial_falqon.py

* change

* change

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* change

* change

* Update demonstrations/tutorial_falqon.py

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Update falqon.py

* Apply suggestions from code review

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* small change

Co-authored-by: David Wakeham <david.a.wakeham@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* use adjoint (#272)

* CH1132 | Fix TOC Bug In Xanadu Themes (#274)

* Table of contents no longer disapears at the bottom of page

* Adds missing semi-colon

* Revert psycf version

* Updates comments

* TOC top matches docs page

* Reverts _static/thumbs/

* Update tutorial_falqon.py

* CH4398 | Fix Community Card Anchors (#275)

* Page scrolls to card if hash is present in URL

* Adds id to card that consists of first letters of title of card and author last name

* IDs are more readable

* Hovering over active card does not remove active class

* IDs no longer have accents

* Active class remains on cards

* CH4568 | Fix Size Of Community Demo Cards (#277)

* Card header uses flexbox

* Cards are same height, text is scrollable

* Descriptions are the same height and overflow is hidden

* Updates read more button

* Overflowing text shows read more link

* Adds modals to read descriptions

* Removes default button styling

* Fixes button alignment

* Community cards are responsive

* JS handles text overflow on page resizing

* Removes unnecessary p tags

* Update videos.rst (#278)

* Update demos_research.rst

* Fix FALQON Tutorial (#280)

* change

* fix

* Made sure to keep track of running best_cost (#281)

This ensures that our computed output_bloch_v is truly the best one encountered in gradient descent, instead of one computed by just any parameters that result in a cost less than our very first initial cost.

* Tutorial Classical Shadows  (#263)

* Create tutorial_classical_shadows.py

* first working version for single qubit

* added comments, multiqubit is working

* adding rough intro to tutorial, metadata, and integrating with qml docs

* Formatting the comments

* adding shadow_state() and snapshot_state()

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>

* adding image and updating introduction

* integrating test code into demo

* adding section headings

* 90 character limit to ensure page is rendered correctly

* Added background to classical shadows

* adding theory portion to state reconstruction section

* small fix on heading

* minor updates to the state reconstruction section

* updating state reconstruction tests

* state reconstruction example

* Wrapped up background

* Restructuring, introducing testing

* Got rid of duplicate information

* quick fixes/rearrangement

* median of means, formatting

* minor fixes

* edits/flow

* Estimating Pauli observables introduction

* adding expected test code-blocks

* fixed math

* Adding final example and shadow bound test

* fix typos

* ran black, added part about pytest, added test output, added random seed

* dots

* adding card image

* fix to meta data

* small typo's

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* moving demo to research category

* fixing citations

* Update demonstrations/tutorial_classical_shadows.py

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

* fixing broken equation

* removing tests

* changing plot

* Addressing comments pt 1

* Remove type suggestions.

* black

* small fixes, added conclusion

* Changed shadow to two seperate arrays, simplified observable estimator.

* added comments

* small typos

* Make docstrings consistent.

* Fix citations

* Small improvements to text flow

* ran through spellcheck

* Changed final figure, addressed most comments.

* A single dot.

* Update demos_research.rst

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Changed

* Bullet rendering issue

* print formatting fix

* unblack

* Apply suggestions from code review

* Apply suggestions from code review

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

* Explain single clifford ensemble

* Apply suggestions from code review

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Adding Header Image to Classical Shadows Demo (#284)

* Create tutorial_classical_shadows.py

* first working version for single qubit

* added comments, multiqubit is working

* adding rough intro to tutorial, metadata, and integrating with qml docs

* Formatting the comments

* adding shadow_state() and snapshot_state()

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>

* adding image and updating introduction

* integrating test code into demo

* adding section headings

* 90 character limit to ensure page is rendered correctly

* Added background to classical shadows

* adding theory portion to state reconstruction section

* small fix on heading

* minor updates to the state reconstruction section

* updating state reconstruction tests

* state reconstruction example

* Wrapped up background

* Restructuring, introducing testing

* Got rid of duplicate information

* quick fixes/rearrangement

* median of means, formatting

* minor fixes

* edits/flow

* Estimating Pauli observables introduction

* adding expected test code-blocks

* fixed math

* Adding final example and shadow bound test

* fix typos

* ran black, added part about pytest, added test output, added random seed

* dots

* adding card image

* fix to meta data

* small typo's

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* moving demo to research category

* fixing citations

* Update demonstrations/tutorial_classical_shadows.py

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

* fixing broken equation

* removing tests

* changing plot

* Addressing comments pt 1

* Remove type suggestions.

* black

* small fixes, added conclusion

* Changed shadow to two seperate arrays, simplified observable estimator.

* added comments

* small typos

* Make docstrings consistent.

* Fix citations

* Small improvements to text flow

* ran through spellcheck

* Changed final figure, addressed most comments.

* A single dot.

* Update demos_research.rst

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Changed

* Bullet rendering issue

* print formatting fix

* unblack

* Apply suggestions from code review

* Apply suggestions from code review

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

* Explain single clifford ensemble

* Apply suggestions from code review

* Update demonstrations/tutorial_classical_shadows.py

* adding header image

* Update demonstrations/tutorial_classical_shadows.py

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Incorrect energy landscape in QNG demo (#285)

* Add files via upload

Correct energy landscape

* Update tutorial_vqe_qng.py

Switched blue and red.

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

* update shots (and trim whitespace)

* setting things right

* fix back unrelated file

* fix

* Add shots=1000 to metrology demo.

* tweak init value

* Last updated

Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tommy Vo Tran <tomvotran@ucla.edu>
Co-authored-by: Jack Ceroni <jackceroni@gmail.com>
Co-authored-by: David Wakeham <david.a.wakeham@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Andrew Gardhouse <AndrewGardhouse@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>
Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>

* Minor learning2learn fixes (#289)

* update minor things

* more minor fixes

* last updated date

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

* Change PyTorch noisy demo to use Amazon Braket (#288)

* remove qpu line (errors with latest Forest)

* Update demonstrations/pytorch_noise.py

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

* QPU through Braket

* wording

* wording

* mention Amazon Braket

* Update demonstrations/pytorch_noise.py

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

* Add Braket at the beginning as dep, further details on QPU

* mentioned QPU at the beginning

* Update demonstrations/pytorch_noise.py

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

* minor

* pull in release candidate of PennyLane

Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: Christina Lee <christina@xanadu.ai>

* Hide designs demo. (#295)

* Update `dev` before merging into `master` (#294)

* Update repo to use the PennyLane and QChem v0.15.1  (#262)

* Update repo to use the PennyLane and QChem v0.15.1

* more

* Fixed typos in qubit rotation tutorial (#264)

1. 'a measurement' instead of 'an measurement'
2. a compound predicate should not have a separating comma

* Upgrade sphinx-gallery to v0.9 (#268)

* Update requirements.txt

* Update conf.py

* Update requirements.txt

* Update config.yml

* Adds Feedback-Based Quantum Optimization (FALQON) Tutorial (#265)

* initial commit

* notebooks

* Add basic theory

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* change

* change

* changes

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* bird seed

* change

* Update falqon_david-checkpoint.ipynb

* Add real data set

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* python file

* adds maxclique image

* bird seed

* edits to tutorial

* tiny change

* Update falqon_david.ipynb

* Update falqon_david.ipynb

* Add short benchmark summary

* change

* change

* change

* tutorial changes

* final changes

* change

* Delete falqon_david-checkpoint.ipynb

* cite

* link

* changes

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* change

* JM review

* Various minor changes, update benchmark data

* Implement Olivia's suggestions except phi normalization and math at start

* Change phi normalization

* Simplify introductory math

* Fix math error

* Fix math error

* Update tutorial_falqon.py

* Update tutorial_falqon.py

* Update tutorial_falqon.py

* change

* change

* Apply suggestions from code review

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* change

* change

* Update demonstrations/tutorial_falqon.py

Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>

* Update falqon.py

* Apply suggestions from code review

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* small change

Co-authored-by: David Wakeham <david.a.wakeham@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* use adjoint (#272)

* CH1132 | Fix TOC Bug In Xanadu Themes (#274)

* Table of contents no longer disapears at the bottom of page

* Adds missing semi-colon

* Revert psycf version

* Updates comments

* TOC top matches docs page

* Reverts _static/thumbs/

* Update tutorial_falqon.py

* CH4398 | Fix Community Card Anchors (#275)

* Page scrolls to card if hash is present in URL

* Adds id to card that consists of first letters of title of card and author last name

* IDs are more readable

* Hovering over active card does not remove active class

* IDs no longer have accents

* Active class remains on cards

* CH4568 | Fix Size Of Community Demo Cards (#277)

* Card header uses flexbox

* Cards are same height, text is scrollable

* Descriptions are the same height and overflow is hidden

* Updates read more button

* Overflowing text shows read more link

* Adds modals to read descriptions

* Removes default button styling

* Fixes button alignment

* Community cards are responsive

* JS handles text overflow on page resizing

* Removes unnecessary p tags

* Update videos.rst (#278)

* Update demos_research.rst

* Fix FALQON Tutorial (#280)

* change

* fix

* Made sure to keep track of running best_cost (#281)

This ensures that our computed output_bloch_v is truly the best one encountered in gradient descent, instead of one computed by just any parameters that result in a cost less than our very first initial cost.

* Tutorial Classical Shadows  (#263)

* Create tutorial_classical_shadows.py

* first working version for single qubit

* added comments, multiqubit is working

* adding rough intro to tutorial, metadata, and integrating with qml docs

* Formatting the comments

* adding shadow_state() and snapshot_state()

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>

* adding image and updating introduction

* integrating test code into demo

* adding section headings

* 90 character limit to ensure page is rendered correctly

* Added background to classical shadows

* adding theory portion to state reconstruction section

* small fix on heading

* minor updates to the state reconstruction section

* updating state reconstruction tests

* state reconstruction example

* Wrapped up background

* Restructuring, introducing testing

* Got rid of duplicate information

* quick fixes/rearrangement

* median of means, formatting

* minor fixes

* edits/flow

* Estimating Pauli observables introduction

* adding expected test code-blocks

* fixed math

* Adding final example and shadow bound test

* fix typos

* ran black, added part about pytest, added test output, added random seed

* dots

* adding card image

* fix to meta data

* small typo's

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* moving demo to research category

* fixing citations

* Update demonstrations/tutorial_classical_shadows.py

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

* fixing broken equation

* removing tests

* changing plot

* Addressing comments pt 1

* Remove type suggestions.

* black

* small fixes, added conclusion

* Changed shadow to two seperate arrays, simplified observable estimator.

* added comments

* small typos

* Make docstrings consistent.

* Fix citations

* Small improvements to text flow

* ran through spellcheck

* Changed final figure, addressed most comments.

* A single dot.

* Update demos_research.rst

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Changed

* Bullet rendering issue

* print formatting fix

* unblack

* Apply suggestions from code review

* Apply suggestions from code review

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

* Explain single clifford ensemble

* Apply suggestions from code review

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Adding Header Image to Classical Shadows Demo (#284)

* Create tutorial_classical_shadows.py

* first working version for single qubit

* added comments, multiqubit is working

* adding rough intro to tutorial, metadata, and integrating with qml docs

* Formatting the comments

* adding shadow_state() and snapshot_state()

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>

* adding image and updating introduction

* integrating test code into demo

* adding section headings

* 90 character limit to ensure page is rendered correctly

* Added background to classical shadows

* adding theory portion to state reconstruction section

* small fix on heading

* minor updates to the state reconstruction section

* updating state reconstruction tests

* state reconstruction example

* Wrapped up background

* Restructuring, introducing testing

* Got rid of duplicate information

* quick fixes/rearrangement

* median of means, formatting

* minor fixes

* edits/flow

* Estimating Pauli observables introduction

* adding expected test code-blocks

* fixed math

* Adding final example and shadow bound test

* fix typos

* ran black, added part about pytest, added test output, added random seed

* dots

* adding card image

* fix to meta data

* small typo's

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* Update demonstrations/tutorial_classical_shadows.py

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

* moving demo to research category

* fixing citations

* Update demonstrations/tutorial_classical_shadows.py

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

* fixing broken equation

* removing tests

* changing plot

* Addressing comments pt 1

* Remove type suggestions.

* black

* small fixes, added conclusion

* Changed shadow to two seperate arrays, simplified observable estimator.

* added comments

* small typos

* Make docstrings consistent.

* Fix citations

* Small improvements to text flow

* ran through spellcheck

* Changed final figure, addressed most comments.

* A single dot.

* Update demos_research.rst

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>

* Changed

* Bullet rendering issue

* print formatting fix

* unblack

* Apply suggestions from code review

* Apply suggestions from code review

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

* Explain single clifford ensemble

* Apply suggestions from code review

* Update demonstrations/tutorial_classical_shadows.py

* adding header image

* Update demonstrations/tutorial_classical_shadows.py

* Update demonstrations/tutorial_classical_shadows.py

Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>

* Incorrect energy landscape in QNG demo (#285)

* Add files via upload

Correct energy landscape

* Update tutorial_vqe_qng.py

Switched blue and red.

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

* Add note about `qsimcirq` warning (#290)

* add note about qsimcirq warning

* Update demonstrations/qsim_beyond_classical.py

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

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

* cache inc

Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Tommy Vo Tran <tomvotran@ucla.edu>
Co-authored-by: Jack Ceroni <jackceroni@gmail.com>
Co-authored-by: David Wakeham <david.a.wakeham@gmail.com>
Co-authored-by: ixfoduap <40441298+ixfoduap@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Andrew Gardhouse <AndrewGardhouse@gmail.com>
Co-authored-by: Nathan Killoran <co9olguy@users.noreply.github.com>
Co-authored-by: bdoolittle <brian.d.doolittle@gmail.com>
Co-authored-by: rooler <roel.wier@gmail.com>
Co-authored-by: Roeland Wiersema <32705838+therooler@users.noreply.github.com>
Co-authored-by: Tom Bromley <49409390+trbromley@users.noreply.github.com>
Co-authored-by: Theodor <theodor@xanadu.ai>

* Requirements

* Update designs demo to use qml.apply and fix issues in dev (#306)

* Re-add demo. Fix issues and update use qml.apply.

* Apply suggestions from code review

* Change op to m for measurements.

* Update `tutorial_noisy_circuits.py` (#312)

* Update tutorial_noisy_circuits.py

* remove dimensionality of ev

* increment cache number

* @master for pl (#319)

* Update requirements.txt

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

* Update requirements.txt

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

* update requirements

* Update requirements.txt (#329)

* Add more `plt.show` calls in the l2l demo (#331)

* plt.show; last updated

* Model name

* diff_method=None (#332)

* Added a note to Quantum Volume Demo (#335)

* Added a note to teach users how to access a list of
available IBM Q backends

* Having two notes next to eachother looks visually bad so
I just merged it with the previous note

* Update requirements.txt

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

* Update requirements.txt

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

* Add dev branch

* Update demos to make use of the new qml.sample and qml.expval(H) functionality (story #: 8118)  (#330)

* Updated qsim to use the new qml.sample functionality
**needs to be tested ! **

* just removed one commented line

* Updated one of the paragraphs to be consistent with
the changes

* Updated coherent vqls to use the builtin functionality of
qml.sample, also tested it locally and it seems to run without
errors!

* updated qaoa_maxcut to use new qml.sample functionality

* updated vqls tutorial to make  use of the new functionality
of qml.sample

* Made some changes to chem reaction tutorial, want to confirm with
CI to see if it works properly because I can't run it locally

* fixed quick little bug with wires in circuit def

* quick change to help debug error in CI

* Found the bug with chem_reactions tutorial, hopefully
this fixes it

* updated falqon tutorial and removed dependance on qml.ExpvalCost,
still need to confirm it works with CI

* fixed a small bug, wrote Qnode isntead of QNode

* Updated falqon to use qml.expval instead of qml.ExpvalCost

* updated optimized measurement tutorial to make use of qml.expval,
still need to test with CI

* debugging measurement optimize tutorial

* The bug regarding Qnodes is well known, just made a change
the Christina suggested as a temporary fix

* Updated molecular geometry optimization tutorial to make
use of qml.expval

* Updated qaoa tutorial to make use of qml.expval, updated docs
in both examples to remove qml.ExpValCost

* Updated vqe and vqe qng tutorials to use qml.expval(H)

* Updated the vqe soin sectors demo with qml.expval, fixed a typo in
overview of vqe tutorial

* Updated parallel vqe tutorial to remove dependance on qml.ExpvalCost,
was not able to fully test this because I don't have rigitti setup

* Updated these tutorials to remove qml.ExpvalCost dependance

* Cleaning up some typos and comments

* Updated measurement optimization tutorial to make use of qml.Tracker

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* Update demonstrations/qsim_beyond_classical.py

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

* Update demonstrations/tutorial_coherent_vqls.py

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

* Updated tutorials based on pr comments

* Fixed bug in the spsa demo

* clean up

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* cleaned up docs

* Cleaning up documentation

* added comment

* Update demonstrations/braket-parallel-gradients.py

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

* Clean up

- added variable num_wires to mol_geo_opt tutorial

- replaced new_graph.nodes with dev.wires to clairfy
iteration over wires

* Update demonstrations/tutorial_coherent_vqls.py

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

* Update demonstrations/qsim_beyond_classical.py

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

* Update demonstrations/tutorial_coherent_vqls.py

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

* Update demonstrations/tutorial_mol_geo_opt.py

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

* Update demonstrations/tutorial_qaoa_intro.py

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

* Update demonstrations/tutorial_vqe_qng.py

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

* Update demonstrations/tutorial_vqls.py

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

* Update demonstrations/tutorial_mol_geo_opt.py

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

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* Address comments

- made circuit a qnode to prevent the need to initialize multiple
qnodes one after another

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

* Update tutorial_gbs.py (#351)

* pin pyparsing (#358)

* Merge `master` into `dev` (#362)

* Update pyscf version. (#273)

Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>

* Update qnode.draw to qml.draw() (#352)

* pin pyparsing (#357)

* replaced pad --> pad_with in this tutorial as it has now been deprecated (#359)

* Add an action for demo output checking (#356)

* Update demos to make use of the new qml.sample and qml.expval(H) functionality (story #: 8118)  (#330)

* Updated qsim to use the new qml.sample functionality
**needs to be tested ! **

* just removed one commented line

* Updated one of the paragraphs to be consistent with
the changes

* Updated coherent vqls to use the builtin functionality of
qml.sample, also tested it locally and it seems to run without
errors!

* updated qaoa_maxcut to use new qml.sample functionality

* updated vqls tutorial to make  use of the new functionality
of qml.sample

* Made some changes to chem reaction tutorial, want to confirm with
CI to see if it works properly because I can't run it locally

* fixed quick little bug with wires in circuit def

* quick change to help debug error in CI

* Found the bug with chem_reactions tutorial, hopefully
this fixes it

* updated falqon tutorial and removed dependance on qml.ExpvalCost,
still need to confirm it works with CI

* fixed a small bug, wrote Qnode isntead of QNode

* Updated falqon to use qml.expval instead of qml.ExpvalCost

* updated optimized measurement tutorial to make use of qml.expval,
still need to test with CI

* debugging measurement optimize tutorial

* The bug regarding Qnodes is well known, just made a change
the Christina suggested as a temporary fix

* Updated molecular geometry optimization tutorial to make
use of qml.expval

* Updated qaoa tutorial to make use of qml.expval, updated docs
in both examples to remove qml.ExpValCost

* Updated vqe and vqe qng tutorials to use qml.expval(H)

* Updated the vqe soin sectors demo with qml.expval, fixed a typo in
overview of vqe tutorial

* Updated parallel vqe tutorial to remove dependance on qml.ExpvalCost,
was not able to fully test this because I don't have rigitti setup

* Updated these tutorials to remove qml.ExpvalCost dependance

* Cleaning up some typos and comments

* Updated measurement optimization tutorial to make use of qml.Tracker

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* Update demonstrations/qsim_beyond_classical.py

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

* Update demonstrations/tutorial_coherent_vqls.py

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

* Updated tutorials based on pr comments

* Fixed bug in the spsa demo

* clean up

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* cleaned up docs

* Cleaning up documentation

* added comment

* Update demonstrations/braket-parallel-gradients.py

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

* Clean up

- added variable num_wires to mol_geo_opt tutorial

- replaced new_graph.nodes with dev.wires to clairfy
iteration over wires

* Update demonstrations/tutorial_coherent_vqls.py

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

* Update demonstrations/qsim_beyond_classical.py

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

* Update demonstrations/tutorial_coherent_vqls.py

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

* Update demonstrations/tutorial_mol_geo_opt.py

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

* Update demonstrations/tutorial_qaoa_intro.py

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

* Update demonstrations/tutorial_vqe_qng.py

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

* Update demonstrations/tutorial_vqls.py

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

* Update demonstrations/tutorial_mol_geo_opt.py

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

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* Address comments

- made circuit a qnode to prevent the need to initialize multiple
qnodes one after another

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

* sources + yml

* add diff job

* on push

* branch name

* unzip with path

* updates

* tutorials from master and dev too

* path to script

* Update diffs found

* add toc and references

* Update diffs found

* comments

* mv to .github/workflows dedicated folder

* diffs document updates

* revert changes to tutorial_vqe_qng.py

* Update .github/workflows/html_parser.py

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

* suggestions

* no sys

* Move demo_diff.md so that workflows access is not required

* change trigger and branch

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: QML demo checker Bot <>

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>

* Update templates access and remove template decorator (#360)

* Update pyscf version. (#273)

Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>

* Update qnode.draw to qml.draw() (#352)

* pin pyparsing (#357)

* replaced pad --> pad_with in this tutorial as it has now been deprecated (#359)

* Update templates.

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>

* Remove use of the init module everywhere (#361)

* Update pyscf version. (#273)

Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>

* Update qnode.draw to qml.draw() (#352)

* pin pyparsing (#357)

* replaced pad --> pad_with in this tutorial as it has now been deprecated (#359)

* Add an action for demo output checking (#356)

* Update demos to make use of the new qml.sample and qml.expval(H) functionality (story #: 8118)  (#330)

* Updated qsim to use the new qml.sample functionality
**needs to be tested ! **

* just removed one commented line

* Updated one of the paragraphs to be consistent with
the changes

* Updated coherent vqls to use the builtin functionality of
qml.sample, also tested it locally and it seems to run without
errors!

* updated qaoa_maxcut to use new qml.sample functionality

* updated vqls tutorial to make  use of the new functionality
of qml.sample

* Made some changes to chem reaction tutorial, want to confirm with
CI to see if it works properly because I can't run it locally

* fixed quick little bug with wires in circuit def

* quick change to help debug error in CI

* Found the bug with chem_reactions tutorial, hopefully
this fixes it

* updated falqon tutorial and removed dependance on qml.ExpvalCost,
still need to confirm it works with CI

* fixed a small bug, wrote Qnode isntead of QNode

* Updated falqon to use qml.expval instead of qml.ExpvalCost

* updated optimized measurement tutorial to make use of qml.expval,
still need to test with CI

* debugging measurement optimize tutorial

* The bug regarding Qnodes is well known, just made a change
the Christina suggested as a temporary fix

* Updated molecular geometry optimization tutorial to make
use of qml.expval

* Updated qaoa tutorial to make use of qml.expval, updated docs
in both examples to remove qml.ExpValCost

* Updated vqe and vqe qng tutorials to use qml.expval(H)

* Updated the vqe soin sectors demo with qml.expval, fixed a typo in
overview of vqe tutorial

* Updated parallel vqe tutorial to remove dependance on qml.ExpvalCost,
was not able to fully test this because I don't have rigitti setup

* Updated these tutorials to remove qml.ExpvalCost dependance

* Cleaning up some typos and comments

* Updated measurement optimization tutorial to make use of qml.Tracker

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* Update demonstrations/qsim_beyond_classical.py

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

* Update demonstrations/tutorial_coherent_vqls.py

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

* Updated tutorials based on pr comments

* Fixed bug in the spsa demo

* clean up

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* cleaned up docs

* Cleaning up documentation

* added comment

* Update demonstrations/braket-parallel-gradients.py

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

* Clean up

- added variable num_wires to mol_geo_opt tutorial

- replaced new_graph.nodes with dev.wires to clairfy
iteration over wires

* Update demonstrations/tutorial_coherent_vqls.py

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

* Update demonstrations/qsim_beyond_classical.py

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

* Update demonstrations/tutorial_coherent_vqls.py

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

* Update demonstrations/tutorial_mol_geo_opt.py

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

* Update demonstrations/tutorial_qaoa_intro.py

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

* Update demonstrations/tutorial_vqe_qng.py

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

* Update demonstrations/tutorial_vqls.py

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

* Update demonstrations/tutorial_mol_geo_opt.py

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

* Update demonstrations/tutorial_qaoa_maxcut.py

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

* Address comments

- made circuit a qnode to prevent the need to initialize multiple
qnodes one after another

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

* sources + yml

* add diff job

* on push

* branch name

* unzip with path

* updates

* tutorials from master and dev too

* path to script

* Update diffs found

* add toc and references

* Update diffs found

* comments

* mv to .github/workflows dedicated folder

* diffs document updates

* revert changes to tutorial_vqe_qng.py

* Update .github/workflows/html_parser.py

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

* suggestions

* no sys

* Move demo_diff.md so that workflows access is not required

* change trigger and branch

Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>
Co-authored-by: Maria Schuld <mariaschuld@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: QML demo checker Bot <>

* remove init module everywhere

* minor improvement

* add 2pi scaling

* Update demonstrations/spsa.py

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

* Update demonstrations/tutorial_doubly_stochastic.py

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

* add low and high; scale argument

* add low and high; scale argument

* use pad_with

Co-authored-by: Olivia Di Matteo <2068515+glassnotes@users.noreply.github.com>
Co-authored-by: Olivia Di Matteo <dimatteo.olivia@gmail.com>
Co-authored-by: Josh Izaac <josh146@gmail.com>
Co-authored-by: antalszava <antalszava@gmail.com>
Co-authored-by: Jay Soni <jbsoni@uwaterloo.ca>

* Requires grad updates (#364)

* chemical

* tutorial_mol_geo_opt

* tutorial_vqe_spin_sectors

* vqe; remove - option due to redundancy warning

* rotoselect

* natural grad demo

* qgrnn

* local cost func demo, requires_grad=True

* format

* gaussian transformation

* qaoa intro

* adaptive

* variational classifier

* Update demonstr…
  • Loading branch information
22 people committed Nov 9, 2021
1 parent 760837d commit f0585ec
Show file tree
Hide file tree
Showing 29 changed files with 134 additions and 127 deletions.
2 changes: 1 addition & 1 deletion demonstrations/braket-parallel-gradients.py
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ def circuit(params, **kwargs):
import time

np.random.seed(1967)
params = 0.01 * np.random.uniform(size=[2, n_layers])
params = 0.01 * np.random.uniform(size=[2, n_layers], requires_grad=True)
iterations = 10

for i in range(iterations):
Expand Down
8 changes: 5 additions & 3 deletions demonstrations/qonn.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def layer(theta, phi, wires):
M = len(wires)
phi_nonlinear = np.pi / 2

qml.templates.Interferometer(
qml.Interferometer(
theta, phi, np.zeros(M), wires=wires, mesh="triangular",
)

Expand Down Expand Up @@ -285,7 +285,7 @@ def cost(var, data_input, labels):
num_variables_per_layer = M * (M - 1)

rng = np.random.default_rng(seed=1234)
var_init = (4 * rng.random(size=(num_layers, num_variables_per_layer)) - 2) * np.pi
var_init = (4 * rng.random(size=(num_layers, num_variables_per_layer), requires_grad=True) - 2) * np.pi
print(var_init)

##############################################################################
Expand Down Expand Up @@ -321,7 +321,9 @@ def cost_wrapper(var, grad=[]):

if grad.size > 0:
# Get the gradient for `var` by first "unflattening" it
var_grad = cost_grad(var.reshape((num_layers, num_variables_per_layer)), X, Y)
var = var.reshape((num_layers, num_variables_per_layer))
var = np.array(var, requires_grad=True)
var_grad = cost_grad(var, X, Y)
grad[:] = var_grad.flatten()
cost_val = cost(var.reshape((num_layers, num_variables_per_layer)), X, Y)

Expand Down
14 changes: 7 additions & 7 deletions demonstrations/spsa.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,13 +160,13 @@
the pieces of an example optimization to come together:
* a circuit ansatz: :func:`~.pennylane.templates.layers.StronglyEntanglingLayers`,
* initial parameters: conveniently generated using :func:`~.pennylane.init.strong_ent_layers_normal`,
* initial parameters: the correct shape can be computed by :func:`~.pennylane.templates.layers.StronglyEntanglingLayers.shape`,
* an observable: :math:`\bigotimes_{i=0}^{N-1}\sigma_z^i`, where :math:`N` stands
for the number of qubits.
"""
import pennylane as qml
import numpy as np
from pennylane import numpy as np

num_wires = 4
num_layers = 5
Expand All @@ -181,7 +181,7 @@


def circuit(params):
qml.templates.StronglyEntanglingLayers(params, wires=list(range(num_wires)))
qml.StronglyEntanglingLayers(params, wires=list(range(num_wires)))
return qml.expval(all_pauliz_tensor_prod)


Expand All @@ -191,9 +191,9 @@ def circuit(params):
# be a flattened array. As a result, our cost function must accept a flat array of parameters
# to be optimized.
flat_shape = num_layers * num_wires * 3
init_params = qml.init.strong_ent_layers_normal(
n_wires=num_wires, n_layers=num_layers
)
param_shape = qml.templates.StronglyEntanglingLayers.shape(n_wires=num_wires, n_layers=num_layers)
init_params = np.random.normal(scale=0.1, size=param_shape, requires_grad=True)

init_params_spsa = init_params.reshape(flat_shape)

qnode_spsa = qml.QNode(circuit, dev_sampler_spsa)
Expand Down Expand Up @@ -483,7 +483,7 @@ def exp_val_circuit(params):
# This random seed was used in the original VQE demo and is known to allow the
# algorithm to converge to the global minimum.
np.random.seed(0)
init_params = np.random.normal(0, np.pi, (num_qubits, 3))
init_params = np.random.normal(0, np.pi, (num_qubits, 3), requires_grad=True)
params = init_params.copy()

h2_grad_device_executions_melbourne = [0]
Expand Down
6 changes: 3 additions & 3 deletions demonstrations/tutorial_adaptive_circuits.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def circuit_1(params, wires, excitations):

opt = qml.GradientDescentOptimizer(stepsize=0.5)

params_doubles = [0.0] * len(doubles_select)
params_doubles = np.zeros(len(doubles_select), requires_grad=True)

for n in range(20):
params_doubles = opt.step(cost_fn, params_doubles, excitations=doubles_select)
Expand Down Expand Up @@ -213,7 +213,7 @@ def circuit_2(params, wires, excitations, gates_select, params_select):

cost_fn = qml.ExpvalCost(circuit_1, H, dev, optimize=True)

params = [0.0] * len(doubles_select + singles_select)
params = np.zeros(len(doubles_select + singles_select), requires_grad=True)

gates_select = doubles_select + singles_select

Expand Down Expand Up @@ -259,8 +259,8 @@ def circuit_2(params, wires, excitations, gates_select, params_select):
opt = qml.GradientDescentOptimizer(stepsize=0.5)

excitations = doubles_select + singles_select
params = [0.0] * len(excitations)

params = np.zeros(len(excitations), requires_grad=True)

@qml.qnode(dev, diff_method="parameter-shift")
def circuit(params):
Expand Down
15 changes: 9 additions & 6 deletions demonstrations/tutorial_backprop.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def parameter_shift(qnode, params):

@qml.qnode(dev, diff_method="parameter-shift", mutable=False)
def circuit(params):
qml.templates.StronglyEntanglingLayers(params, wires=[0, 1, 2, 3])
qml.StronglyEntanglingLayers(params, wires=[0, 1, 2, 3])
return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1) @ qml.PauliZ(2) @ qml.PauliZ(3))


Expand All @@ -178,7 +178,8 @@ def circuit(params):


# initialize circuit parameters
params = qml.init.strong_ent_layers_normal(n_wires=4, n_layers=15)
param_shape = qml.templates.StronglyEntanglingLayers.shape(n_wires=4, n_layers=15)
params = np.random.normal(scale=0.1, size=param_shape)
print(params.size)
print(circuit(params))

Expand Down Expand Up @@ -271,11 +272,12 @@ def circuit(params):

@qml.qnode(dev, diff_method="backprop")
def circuit(params):
qml.templates.StronglyEntanglingLayers(params, wires=[0, 1, 2, 3])
qml.StronglyEntanglingLayers(params, wires=[0, 1, 2, 3])
return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1) @ qml.PauliZ(2) @ qml.PauliZ(3))

# initialize circuit parameters
params = qml.init.strong_ent_layers_normal(n_wires=4, n_layers=15)
param_shape = qml.templates.StronglyEntanglingLayers.shape(n_wires=4, n_layers=15)
params = np.random.normal(scale=0.1, size=param_shape)
params = np.array(params, requires_grad=True)
print(circuit(params))

Expand Down Expand Up @@ -315,7 +317,7 @@ def circuit(params):
dev = qml.device("default.qubit", wires=4)

def circuit(params):
qml.templates.StronglyEntanglingLayers(params, wires=[0, 1, 2, 3])
qml.StronglyEntanglingLayers(params, wires=[0, 1, 2, 3])
return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1) @ qml.PauliZ(2) @ qml.PauliZ(3))

##############################################################################
Expand All @@ -334,7 +336,8 @@ def circuit(params):
gradient_backprop = []

for depth in range(0, 21):
params = qml.init.strong_ent_layers_normal(n_wires=4, n_layers=depth)
param_shape = qml.templates.StronglyEntanglingLayers.shape(n_wires=4, n_layers=depth)
params = np.random.normal(scale=0.1, size=param_shape)
num_params = params.size
params = np.array(params, requires_grad=True)

Expand Down
6 changes: 3 additions & 3 deletions demonstrations/tutorial_chemical_reactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
# the equilibrium bond length, and the point where the bond is broken, which occurs when the atoms
# are far away from each other.

import numpy as np
from pennylane import numpy as np

# atomic symbols defining the molecule
symbols = ['H', 'H']
Expand Down Expand Up @@ -146,7 +146,7 @@ def circuit(parameters):
return qml.expval(H) # we are interested in minimizing this expectation value

# initialize the gate parameters
params = np.zeros(3)
params = np.zeros(3, requires_grad=True)

# initialize with converged parameters from previous point
if pes_point > 0:
Expand Down Expand Up @@ -293,7 +293,7 @@ def circuit(parameters):
AllSinglesDoubles(parameters, range(qubits), hf, singles, doubles)
return qml.expval(H) # we are interested in minimizing this expectation value

params = np.zeros(len(singles) + len(doubles))
params = np.zeros(len(singles) + len(doubles), requires_grad=True)

if pes_point > 0:
params = params_old
Expand Down
4 changes: 2 additions & 2 deletions demonstrations/tutorial_doubly_stochastic.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@
np.random.seed(3)

from pennylane import expval
from pennylane.init import strong_ent_layers_uniform
from pennylane.templates.layers import StronglyEntanglingLayers

num_layers = 2
Expand Down Expand Up @@ -155,7 +154,8 @@ def circuit(params):
qnode_analytic = qml.QNode(circuit, dev_analytic)
qnode_stochastic = qml.QNode(circuit, dev_stochastic)

init_params = strong_ent_layers_uniform(num_layers, num_wires)
param_shape = StronglyEntanglingLayers.shape(n_layers=num_layers, n_wires=num_wires)
init_params = np.random.uniform(low=0, high=2*np.pi, size=param_shape)

# Optimizing using exact gradient descent

Expand Down
8 changes: 4 additions & 4 deletions demonstrations/tutorial_falqon.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
#

import pennylane as qml
import numpy as np
from pennylane import numpy as np
from matplotlib import pyplot as plt
from pennylane import qaoa as qaoa
import networkx as nx
Expand Down Expand Up @@ -212,8 +212,8 @@ def build_hamiltonian(graph):
# the form :math:`U_d(\beta_k) U_c`. Note that we can use the :class:`~.pennylane.templates.ApproxTimeEvolution` template:

def falqon_layer(beta_k, cost_h, driver_h, delta_t):
qml.templates.ApproxTimeEvolution(cost_h, delta_t, 1)
qml.templates.ApproxTimeEvolution(driver_h, delta_t * beta_k, 1)
qml.ApproxTimeEvolution(cost_h, delta_t, 1)
qml.ApproxTimeEvolution(driver_h, delta_t * beta_k, 1)

######################################################################
# We then define a method which returns a FALQON ansatz corresponding to a particular cost Hamiltonian, driver
Expand Down Expand Up @@ -431,7 +431,7 @@ def qaoa_expval(params):

res, res_energy = max_clique_falqon(new_graph, depth-1, 0.0, delta_t, dev)

params = np.array([[delta_t for k in res], [delta_t * k for k in res]])
params = np.array([[delta_t for k in res], [delta_t * k for k in res]], requires_grad=True)

######################################################################
# Finally, we run our QAOA optimization procedure. We set the number of QAOA executions to :math:`40`:
Expand Down
2 changes: 1 addition & 1 deletion demonstrations/tutorial_gaussian_transformation.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def cost(params):
###############################################################################
# At the beginning of the optimization, we choose arbitrary small initial parameters:

init_params = [0.015, 0.02, 0.005]
init_params = np.array([0.015, 0.02, 0.005], requires_grad=True)
print(cost(init_params))

###############################################################################
Expand Down
2 changes: 1 addition & 1 deletion demonstrations/tutorial_gbs.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ def gbs_circuit():
qml.Squeezing(1.0, 0.0, wires=i)

# linear interferometer
qml.Interferometer(U, wires=range(n_wires))
qml.InterferometerUnitary(U, wires=range(n_wires))
return qml.probs(wires=range(n_wires))


Expand Down
17 changes: 7 additions & 10 deletions demonstrations/tutorial_local_cost_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ def cost_global(rotations):
# landscape is :math:`(\pi,0)` as it is in the middle of the plateau, so let's use that.


rotations = np.array([[3.] * len(range(wires)), [0.] * len(range(wires))])
rotations = np.array([[3.] * len(range(wires)), [0.] * len(range(wires))], requires_grad=True)
opt = qml.GradientDescentOptimizer(stepsize=0.2)
steps = 100
params_global = rotations
Expand All @@ -300,7 +300,7 @@ def cost_global(rotations):
# function and see how it performs.
#

rotations = np.array([[3. for i in range(wires)], [0. for i in range(wires)]])
rotations = np.array([[3. for i in range(wires)], [0. for i in range(wires)]], requires_grad=True)
opt = qml.GradientDescentOptimizer(stepsize=0.2)
steps = 100
params_local = rotations
Expand Down Expand Up @@ -436,10 +436,9 @@ def cost_tunable(rotations):
for runs in range(samples):
print("--- New run! ---")
has_been_trained = False
params_global = [
[np.random.uniform(-np.pi, np.pi) for i in range(wires)],
[np.random.uniform(-np.pi, np.pi) for i in range(wires)],
]

params_global = np.random.uniform(-np.pi, np.pi, (2, wires), requires_grad=True)

for i in range(steps):
# update the circuit parameters
params_global = opt.step(cost_global, params_global)
Expand Down Expand Up @@ -471,10 +470,8 @@ def cost_tunable(rotations):
locality = 1
print("--- New run! ---")
has_been_trained = False
params_tunable = [
[np.random.uniform(-np.pi, np.pi) for i in range(wires)],
[np.random.uniform(-np.pi, np.pi) for i in range(wires)],
]

params_tunable = np.random.uniform(-np.pi, np.pi, (2, wires), requires_grad=True)
for i in range(steps):
# update the circuit parameters
params_tunable = opt.step(cost_tunable, params_tunable)
Expand Down
23 changes: 12 additions & 11 deletions demonstrations/tutorial_measurement_optimize.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
singles, doubles = qml.qchem.excitations(electrons, num_qubits)
s_wires, d_wires = qml.qchem.excitations_to_wires(singles, doubles)
ansatz = functools.partial(
qml.templates.UCCSD, init_state=initial_state, s_wires=s_wires, d_wires=d_wires
qml.UCCSD, init_state=initial_state, s_wires=s_wires, d_wires=d_wires
)

# generate the cost function
Expand Down Expand Up @@ -388,17 +388,17 @@ def cost_circuit(params):

@qml.qnode(dev)
def circuit1(weights):
qml.templates.StronglyEntanglingLayers(weights, wires=range(3))
qml.StronglyEntanglingLayers(weights, wires=range(3))
return qml.expval(obs[0])


@qml.qnode(dev)
def circuit2(weights):
qml.templates.StronglyEntanglingLayers(weights, wires=range(3))
qml.StronglyEntanglingLayers(weights, wires=range(3))
return qml.expval(obs[1])


weights = qml.init.strong_ent_layers_normal(n_layers=3, n_wires=3)
param_shape = qml.templates.StronglyEntanglingLayers.shape(n_layers=3, n_wires=3)
weights = np.random.normal(scale=0.1, size=param_shape)

print("Expectation value of XYI = ", circuit1(weights))
print("Expectation value of XIZ = ", circuit2(weights))
Expand All @@ -409,7 +409,7 @@ def circuit2(weights):

@qml.qnode(dev)
def circuit_qwc(weights):
qml.templates.StronglyEntanglingLayers(weights, wires=range(3))
qml.StronglyEntanglingLayers(weights, wires=range(3))

# rotate wire 0 into the shared eigenbasis
qml.RY(-np.pi / 2, wires=0)
Expand Down Expand Up @@ -455,7 +455,7 @@ def circuit_qwc(weights):

@qml.qnode(dev)
def circuit(weights):
qml.templates.StronglyEntanglingLayers(weights, wires=range(3))
qml.StronglyEntanglingLayers(weights, wires=range(3))
return [
qml.expval(qml.PauliX(0) @ qml.PauliY(1)),
qml.expval(qml.PauliX(0) @ qml.PauliZ(2))
Expand Down Expand Up @@ -489,7 +489,7 @@ def circuit(weights):
#
# @qml.qnode(dev)
# def circuit(weights):
# qml.templates.StronglyEntanglingLayers(weights, wires=range(3))
# qml.StronglyEntanglingLayers(weights, wires=range(3))
# return [
# qml.expval(qml.PauliZ(0) @ qml.PauliY(1)),
# qml.expval(qml.PauliZ(0) @ qml.PauliZ(1))
Expand Down Expand Up @@ -732,10 +732,11 @@ def format_pauli_word(term):

@qml.qnode(dev)
def circuit(weights, group=None, **kwargs):
qml.templates.StronglyEntanglingLayers(weights, wires=range(4))
qml.StronglyEntanglingLayers(weights, wires=range(4))
return [qml.expval(o) for o in group]

weights = qml.init.strong_ent_layers_normal(n_layers=3, n_wires=4)
param_shape = qml.templates.StronglyEntanglingLayers.shape(n_layers=3, n_wires=4)
weights = np.random.normal(scale=0.1, size=param_shape)
result = [circuit(weights, group=g) for g in obs_groupings]

print("Term expectation values:")
Expand All @@ -755,7 +756,7 @@ def circuit(weights, group=None, **kwargs):
# optimized:

H = qml.Hamiltonian(coeffs=np.ones(len(terms)), observables=terms)
cost_fn = qml.ExpvalCost(qml.templates.StronglyEntanglingLayers, H, dev, optimize=True)
cost_fn = qml.ExpvalCost(qml.StronglyEntanglingLayers, H, dev, optimize=True)
print(cost_fn(weights))

##############################################################################
Expand Down
Loading

0 comments on commit f0585ec

Please sign in to comment.