Skip to content

Latest commit

 

History

History
211 lines (174 loc) · 6.96 KB

index.rst

File metadata and controls

211 lines (174 loc) · 6.96 KB

PennyLane Documentation

.. rst-class:: lead grey-text ml-2

Release:|release|
#right-column.card { box-shadow: none!important; } #right-column.card:hover { box-shadow: none!important; } .breadcrumb { display: none; } h1 { text-align: center; margin-bottom: 15px; } .footer-relations { border-top: 0px; }

PennyLane is a cross-platform Python library for quantum machine learning, automatic differentiation, and optimization of hybrid quantum-classical computations.

A guided tour of the core features of PennyLane

How you can contribute to the development of PennyLane

Explore the PennyLane API

Features

_static/intro.png

  • Follow the gradient. Built-in automatic differentiation of quantum circuits.
  • Best of both worlds. Support for hybrid quantum and classical models; connect quantum hardware with PyTorch, TensorFlow, and NumPy.
  • Batteries included. Provides optimization and machine learning tools.
  • Device independent. The same quantum circuit model can be run on different backends. Install plugins to access even more devices, including Strawberry Fields, IBM Q, Google Cirq, Rigetti Forest, Microsoft QDK, and ProjectQ.

Getting started

For getting started with PennyLane, check out some of the key concepts behind quantum machine learning, before moving on to some introductory tutorials.

Then, take a deeper dive into quantum machine learning by exploring cutting-edge algorithms using PennyLane and near-term quantum hardware, with our collection of QML tutorials.

You can also check out the :doc:`Using PennyLane <introduction/pennylane>` section for more details on the :doc:`quantum operations <introduction/operations>`, and to explore the available :doc:`optimization tools <introduction/optimizers>` provided by PennyLane. We also have a detailed guide on :doc:`how to write your own <development/plugins>` PennyLane-compatible quantum device.

Finally, play around with the numerous devices and plugins available for running your hybrid optimizations—these include IBM Q, provided by the PennyLane-Qiskit plugin, as well as the Rigetti Aspen-1 QPU provided by PennyLane-Forest.

How to cite

If you are doing research using PennyLane, please cite

.. rst-class:: admonition warning

    Ville Bergholm, Josh Izaac, Maria Schuld, Christian Gogolin, M. Sohaib Alam, Shahnawaz Ahmed,
    Juan Miguel Arrazola, Carsten Blank, Alain Delgado, Soran Jahangiri, Keri McKiernan, Johannes Jakob Meyer,
    Zeyue Niu, Antal Száva, and Nathan Killoran.
    *PennyLane: Automatic differentiation of hybrid quantum-classical computations.* 2018.
    `arXiv:1811.04968 <https://arxiv.org/abs/1811.04968>`_

Support and contribution

If you are having issues, please let us know by posting the issue on our GitHub issue tracker.

We encourage contributions — simply fork the PennyLane repository, and then make a pull request containing your contribution. All contributers to PennyLane will be listed as authors on the releases.

To chat directly with the team designing and building PennyLane, as well as members of our community — ranging from quantum machine learning researchers, to students, to those just interested in being a part of a rapidly growing industry — you can join our discussion forum.

License

PennyLane is free and open source, released under the Apache License, Version 2.0.

.. toctree::
   :maxdepth: 1
   :caption: Using PennyLane
   :hidden:

   introduction/pennylane
   introduction/circuits
   introduction/interfaces
   introduction/operations
   introduction/measurements
   introduction/templates
   introduction/optimizers
   introduction/chemistry
   introduction/configuration

.. toctree::
   :maxdepth: 1
   :caption: Development
   :hidden:

   development/guide
   development/plugins
   development/release_notes.md

.. toctree::
   :maxdepth: 1
   :caption: API
   :hidden:

   code/qml
   code/qml_init
   code/qml_interfaces
   code/qml_operation
   code/qml_plugins
   code/qml_qchem
   code/qml_qnn
   code/qml_qnodes
   code/qml_templates
   code/qml_utils
   code/qml_variable
   code/qml_beta