The creatively named QuCumber package (part of PIQuIL at the Perimeter Institute) provides a python implementation for performing quantum state tomography on experimental and numerical data. To do so, it uses Restricted Boltzmann Machines (RBM) as an Ansatz for pure-state wavefunctions and optimizes them using standard RBM training techniques. The premise for releasing such a package is that current-day experimental systems are at a level where 1) data-sets for tomography in this approach can be generated and 2) tomography methods become essential in verifying experiments where classical simulations no longer suffice.
Previous works, cited in the article, have shown (emperically) that RBM-based wavefunctions provide a powerful Ansatz. Having a streamlined python package that facilitates tomography with RBMs without the user having to implement training procedures is extremely helpful, and I expect that a package like this may well become a standard tool.
A remark should be made w.r.t. the NetKet package, which supports quantum state tomography with RBMs in exactly the same way. An advantage of QuCumber, at least currently, is that it is based on the pyTorch backend and hence fully transparently supports running the algorithm on a GPU. The package has potential to be extended and include other generative models easily, too.
There are some minor things in the paper left unexplained, which in light of the pedagogical nature of the rest of the paper could use a small addition. For example, the paper mentions (block) Gibbs sampling (and e.g. the positive/negative phases of the contrastive divergence algorithm), but the block sampling procedure is never mentioned in the Glossary (although to be fair, a more extensive explanation of the theory can be found in the associated github repository). In the code snipped split between pages 4&5 the code requires the generation of a Hilbert space description as an argument to the MetricEvaluator, which is never referenced in the text.
A discussion paragraph on the applicability of the package in practical terms would be very useful for prospective users. Do the authors have any intuition regarding the scaling of the required number of samples (to train and also to estimate reconstruction fidelities from measurements/energy), for example? And how successful is the 2-RBM setup for complex wavefunctions in general? These points are discussed in more detail on the associated github repository, but would be helpful in the paper.
Last, out of curiosity, I would like to ask if the authors could use the approach to train e.g. an RBM with the magnetic field as a conditional parameter (c.f. Fig. 2), so that one machine suffices?
Overall the submission introduces a numerical package based on previous results. The main aim of the submission is to introduce this package through example snippets and demonstrate it's capabilities, whilst further details are left to the associated open source github repository. SciPost matches the open source nature of this project, and can reach the experimental (and numerical) communities that may benefit from this package. I have no reservations therefore in considering this submission suitable for SciPost.