We introduce version 3 of NetKet, the machine learning toolbox for many-body quantum physics. NetKet is built around neural-network quantum states and provides efficient algorithms for their evaluation and optimization. This new version is built on top of JAX, a differentiable programming and accelerated linear algebra framework for the Python programming language. The most significant new feature is the possibility to define arbitrary neural network ans\"atze in pure Python code using the concise notation of machine-learning frameworks, which allows for just-in-time compilation as well as the implicit generation of gradients thanks to automatic differentiation. NetKet 3 also comes with support for GPU and TPU accelerators, advanced support for discrete symmetry groups, chunking to scale up to thousands of degrees of freedom, drivers for quantum dynamics applications, and improved modularity, allowing users to use only parts of the toolbox as a foundation for their own code.
翻译:我们引入了 NetKet 的版本 3, 这是多体量子物理的机器学习工具箱 。 NetKet 是围绕神经网络量子状态建造的, 为它们的评估和优化提供了高效的算法 。 这个新版本是建在 JAX 之上的, 这是用于 Python 编程语言的不同编程和加速线性代数框架 。 最重要的新特征是有可能在纯 Python 代码中定义任意的神经网络 as\ atze, 使用机器学习框架的简洁标记, 允许在时间上及时编集, 以及自动区分而隐含生成的梯度 。 NetKet 3 也伴随着对 GPU 和 TPU 加速器的支持, 对离散的对称组的高级支持, 将分解到数千 度的自由度, 量子动态应用程序的驱动器, 以及改进的模块性, 允许用户仅使用工具箱的一部分作为他们自己代码的基础 。