# NetKet 3: Machine Learning Toolbox for Many-Body Quantum Systems

### Submission summary

 As Contributors: Giuseppe Carleo · Damian Hofmann · Attila Szabó · Filippo Vicentini Preprint link: scipost_202112_00047v2 Code repository: https://github.com/netket/netket Date accepted: 2022-06-13 Date submitted: 2022-05-27 11:10 Submitted by: Vicentini, Filippo Submitted to: SciPost Physics Codebases Academic field: Physics Specialties: Condensed Matter Physics - Computational Quantum Physics Approach: Computational

### Abstract

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ätze 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.

###### Current status:
Publication decision taken: accept

Editorial decision: For Journal SciPost Physics Codebases: Publish
(status: Editorial decision fixed and (if required) accepted by authors)

Dear Editor and referees, We are very grateful for the many comments and remarks that helped us increase the quality of the final manuscript. We have implemented corrections for all the issues you raised, and expanded the manuscript to incldue new features that were added in the last few months. Below we list the major changes to the manuscript. Of course there are many other small changes that are too numerous to list, such as updating code examples to use new or refined syntax or reflecting.

Detailed answers to all issues raised by the referees have been submitted separately as replies.

# List of Major Changes

• We have added a prominent panel highlighting the fact that advanced features in NetKet require knowledge of Jax, and linking to their documentation;
• We have added Sec. 3.2.2 discussing the difference between holomorphic and non-holomorphic complex ansatze, as well as how their parameters as stored in PyTrees;
• We have added Sec. 3.2.3 briefly discussing the use-case for all models included in NetKet;
• We have added Sec. 3.3.1 discussing how to reduce memory pressure in large computations through chunking;
• We have added a new, more elaborate example on interacting continuous systems in Sec. 6.5;
• We have added Sec. 8 discussing how to model systems with a discrete number of fermionic orbitals;
• We have updated the paper to refer to the current version of NetKet, 3.5, in several places. In particular, the syntax to specify the data-type of models throughout the manuscript was changed from dtype=... to param_dtype=... in order to be consistent with the same change performed by an upstream dependency (flax). The old syntax still works but will be eventually removed an year from now;
• Various minor changes in formulations and formatting to improve the clarity of the manuscript.

### Submission & Refereeing History

Resubmission scipost_202112_00047v2 on 27 May 2022
Submission scipost_202112_00047v1 on 20 December 2021

## Reports on this Submission

### Report

The authors addressed all my comments. They improved the quality and readability of the manuscript with additional stylistic changes which are very welcomed.

I recommend the manuscript for publication with no additional revisions.

• validity: -
• significance: -
• originality: -
• clarity: -
• formatting: -
• grammar: -