Package for classification

Great PR @nvitucci! Thanks for the contribution :rocket:

It would be great to keep going with a follow up addition. Weโ€™d like to suggest the following two ideas:

  1. Provide quantum-aware optimizers for the PyTorch and TensorFlow interfaces. Currently, PennyLane offers a selection of optimizers for the NumPy interface. Most of these optimizers, such as AdamOptimizer already have a similar version in PyTorch/TensorFlow. However, we also provide QNGOptimizer, RotosolveOptimizer, and RotoselectOptimizer that are quantum-aware in the sense that they use information about the quantum circuit during optimization. It would be great to provide these optimizers for users interacting with the PyTorch and TensorFlow interfaces. There is already a discussion and a prototype here for a bit more context.

  2. Provide decompositions of qubit Hamiltonian matrices into linear combinations of Pauli matrices. This is quite a useful feature for breaking down arbitrary measurements into ones realizable on hardware and should be relatively simple. There is already a PR here looking at this but it looks like itโ€™s lost momentum, so it would be good to start afresh with a new PR and get this feature across the line.

The first idea requires a bit of thinking and likely some back and forth of ideas and prototypes with us, so potentially we could kick-off both suggestions at the same time, doing the easier second one while thinking about the design for the first.

Thanks and happy to discuss more if not clear!
Tom