As we enter a new era of quantum technology, it is increasingly important to develop methods to aid in the accurate preparation of quantum states for a variety of materials, matter, and devices. Computational techniques can be used to reconstruct a state from data, however the growing number of qubits demands ongoing algorithmic advances in order to keep pace with experiments. In this paper, we present an open-source software package called QuCumber that uses machine learning to reconstruct a quantum state consistent with a set of projective measurements. QuCumber uses a restricted Boltzmann machine to efficiently represent the quantum wavefunction for a large number of qubits. New measurements can be generated from the machine to obtain physical observables not easily accessible from the original data. Contents arXiv:1812.09329v2 [quant-ph] 16 May 2019 SciPost Physics Submission 4 Conclusion 14 A Glossary 15 References 171 IntroductionCurrent advances in fabricating quantum technologies, as well as in reliable control of synthetic quantum matter, are leading to a new era of quantum hardware where highly pure quantum states are routinely prepared in laboratories. With the growing number of controlled quantum degrees of freedom, such as superconducting qubits, trapped ions, and ultracold atoms [1-4], reliable and scalable classical algorithms are required for the analysis and verification of experimentally prepared quantum states. Efficient algorithms can aid in extracting physical observables otherwise inaccessible from experimental measurements, as well as in identifying sources of noise to provide direct feedback for improving experimental hardware. However, traditional approaches for reconstructing unknown quantum states from a set of measurements, such as quantum state tomography, often suffer the exponential overhead that is typical of quantum many-body systems.Recently, an alternative path to quantum state reconstruction was put forward, based on modern machine learning (ML) techniques [5][6][7][8][9][10]. The most common approach relies on a powerful generative model called a restricted Boltzmann machine (RBM) [11], a stochastic neural network with two layers of binary units. A visible layer v describes the physical degrees of freedom, while a hidden layer h is used to capture high-order correlations between the visible units. Given a set of neural network parameters λ, the RBM defines a probabilistic model described by the parametric distribution p λ (v). RBMs have been widely used in the ML community for the pre-training of deep neural networks [12], for compressing high-dimensional data into lower-dimensional representations [13], and more [14]. More recently, RBMs have been adopted by the physics community in the context of representing both classical and quantum many-body states [15,16]. They are currently being investigated for their representational power [17][18][19], their relationship with tensor networks and the renormalization group [20][21][22][23][24], and in other contexts in quantum many-bo...