NetKet 3.22.0.dev3__tar.gz → 3.22.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {netket-3.22.0.dev3 → netket-3.22.1}/PKG-INFO +5 -4
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/__init__.py +2 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/auto_chunk_size.py +2 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/base.py +2 -2
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/callbacks/convergence_stopping.py +17 -26
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/callbacks/early_stopping.py +22 -37
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/callbacks/invalid_loss_stopping.py +13 -24
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/callbacks/timeout.py +15 -30
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/driver/abstract_optimization_driver.py +3 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/driver/abstract_variational_driver.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/driver/abstract_variational_driver_old.py +2 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/driver/infidelity_sr.py +3 -3
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/driver/vmc_sr.py +1 -2
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/logging/base.py +0 -2
- netket-3.22.1/netket/_src/logging/hdf5_log.py +329 -0
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/logging/json_log.py +1 -1
- netket-3.22.1/netket/_src/logging/mlflow_log.py +300 -0
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/logging/runtime_log.py +1 -1
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/logging/state_log.py +1 -1
- {netket-3.22.0.dev3/netket → netket-3.22.1/netket/_src}/logging/tensorboard.py +108 -62
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/ngd/sr.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/ngd/srt.py +2 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/ngd/srt_onthefly.py +7 -7
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/nn/apply_operator/linen.py +3 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/nn/apply_operator/nnx.py +3 -2
- netket-3.22.1/netket/_src/nn/freeze/api.py +129 -0
- netket-3.22.1/netket/_src/nn/freeze/common.py +110 -0
- netket-3.22.1/netket/_src/nn/freeze/functional.py +110 -0
- netket-3.22.1/netket/_src/nn/freeze/linen.py +150 -0
- netket-3.22.1/netket/_src/nn/freeze/nnx.py +84 -0
- netket-3.22.1/netket/_src/observable/correlator/__init__.py +17 -0
- netket-3.22.1/netket/_src/observable/correlator/correlator.py +72 -0
- netket-3.22.1/netket/_src/observable/correlator/expect.py +70 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/infidelity/__init__.py +3 -3
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/infidelity/exact.py +1 -1
- netket-3.22.1/netket/_src/observable/infidelity/expect.py +113 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/infidelity/infidelity_operator.py +1 -1
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/renyi2/expect.py +47 -50
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/variance/expect.py +33 -16
- netket-3.22.1/netket/_src/observable/vscore.py +169 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/particle_number_conserving_fermionic/fermihubbard.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/particle_number_conserving_fermionic/kernels.py +2 -2
- netket-3.22.1/netket/_src/operator/spin_flip.py +121 -0
- netket-3.22.1/netket/_src/stats/local_estimators.py +245 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/stats/online_stats/__init__.py +7 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/stats/online_stats/accumulator.py +12 -0
- netket-3.22.1/netket/_src/stats/online_stats/accumulator_batch.py +255 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/stats/online_stats/operations.py +71 -5
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/symmetry/canonical_representation.py +42 -12
- netket-3.22.1/netket/_src/symmetry/labeled_representation.py +249 -0
- netket-3.22.1/netket/_src/symmetry/labeled_representation_coset_filter.py +197 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/symmetry/representation.py +7 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/symmetry/representation_construction.py +12 -20
- netket-3.22.1/netket/_src/symmetry/spin_flip_representation.py +63 -0
- netket-3.22.1/netket/_src/symmetry/translation_coset_filter.py +255 -0
- netket-3.22.1/netket/_src/symmetry/translation_representation.py +286 -0
- netket-3.22.1/netket/_src/vqs/check_mc_convergence.py +494 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/expect_to_precision.py +39 -29
- netket-3.22.1/netket/_src/vqs/freeze_vstate.py +166 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/transformed_vstate.py +29 -17
- netket-3.22.1/netket/_version.py +24 -0
- netket-3.22.0.dev3/netket/callbacks/__init__.py → netket-3.22.1/netket/callbacks.py +12 -9
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/driver/__init__.py +2 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/errors.py +119 -11
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/driver/tdvp_common.py +5 -4
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/driver/tdvp_schmitt.py +2 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_rk/_tableau.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/logging/__init__.py +14 -4
- netket-3.22.1/netket/experimental/observable/__init__.py +53 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/common_lattices.py +24 -6
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/lattice.py +67 -17
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/space_group.py +125 -18
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/fock.py +4 -1
- netket-3.22.1/netket/jax/_compat.py +68 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_jacobian/logic.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_sort.py +2 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_sparse.py +6 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_utils_dtype.py +14 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_utils_random.py +3 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_vjp_chunked.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_vmap_chunked.py +39 -11
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/sharding/debug.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/sharding/fixed_sharding_decorator.py +4 -4
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/sharding/fixed_sharding_utils.py +4 -4
- netket-3.22.0.dev3/netket/logging/__init__.py → netket-3.22.1/netket/logging.py +9 -7
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/slater.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/__init__.py +5 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/symmetric_linear.py +3 -3
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/utils.py +14 -10
- netket-3.22.0.dev3/netket/experimental/observable/__init__.py → netket-3.22.1/netket/observable.py +12 -6
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_abstract_operator.py +15 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_discrete_operator.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_discrete_operator_jax.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_fermion2nd/jax.py +53 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_fermion2nd/utils.py +26 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_kinetic.py +3 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/qgt_onthefly_logic.py +5 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/solver/__init__.py +5 -3
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/solver/solvers.py +238 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/autoreg.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/base.py +47 -5
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/exact.py +2 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/metropolis.py +15 -4
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/metropolis_numpy.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/exchange.py +49 -22
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/hamiltonian.py +2 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/stats/__init__.py +7 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/stats/mc_stats.py +48 -0
- netket-3.22.1/netket/symmetry/__init__.py +15 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/symmetry/group/__init__.py +5 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/__init__.py +1 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/_tips.py +15 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/citations/internal_citations.bib +10 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/config_flags.py +63 -10
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/__init__.py +5 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/_group.py +40 -24
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/_permutation_group.py +28 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/history/accum.py +0 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/history/history_dict.py +25 -4
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/__init__.py +1 -1
- netket-3.22.1/netket/utils/model_frameworks/flax_bound.py +51 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/moduletools.py +31 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/struct/dataclass.py +32 -2
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/struct/pytree.py +5 -3
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/struct/pytree_serialization_sharding.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/struct/utils.py +21 -0
- netket-3.22.1/netket/utils/tree_walk.py +137 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/__init__.py +8 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/full_summ/state.py +3 -3
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/__init__.py +6 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/common.py +31 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/kernels.py +4 -3
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_mixed_state/__init__.py +1 -0
- netket-3.22.1/netket/vqs/mc/mc_mixed_state/expect_grad.py +63 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_mixed_state/state.py +1 -1
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/__init__.py +2 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/expect.py +4 -40
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/expect_chunked.py +3 -54
- netket-3.22.1/netket/vqs/mc/mc_state/local_estimators.py +82 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/state.py +102 -99
- {netket-3.22.0.dev3 → netket-3.22.1}/pyproject.toml +7 -5
- netket-3.22.0.dev3/netket/_src/vqs/check_mc_convergence.py +0 -265
- netket-3.22.0.dev3/netket/_version.py +0 -34
- netket-3.22.0.dev3/netket/experimental/logging/hdf5_log.py +0 -218
- netket-3.22.0.dev3/netket/experimental/observable/infidelity/expect.py +0 -112
- netket-3.22.0.dev3/netket/symmetry/__init__.py +0 -10
- {netket-3.22.0.dev3 → netket-3.22.1}/.gitignore +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/LICENSE +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/README.md +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/docs/sphinx_extensions/netket_citations.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/auto_slurm_requeue.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/callback_list.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/legacy_wrappers.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/observables.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/progressbar.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/save_state.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/callbacks/stop_at_time.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/driver/abstract_dynamics_driver.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/ngd/kwargs.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/ngd/sr_srt_common.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/nn/apply_operator/functional.py +0 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/renyi2/S2_operator.py +0 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/renyi2/__init__.py +0 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/renyi2/exact.py +0 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/variance/__init__.py +0 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/variance/exact.py +0 -0
- {netket-3.22.0.dev3/netket/experimental → netket-3.22.1/netket/_src}/observable/variance/variance_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/normal_order_utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/particle_number_conserving_fermionic/conversion.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/particle_number_conserving_fermionic/operator_data.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/particle_number_conserving_fermionic/operators.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/permutation/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/permutation/construct.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/permutation/fermion.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/permutation/spin.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/permutation/trace_utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/pyscf_api.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/operator/pyscf_utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/solvers/nan_fallback.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/stats/online_stats/kernels.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/fermion_mf/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/fermion_mf/expectation.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/fermion_mf/qgt.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/fermion_mf/state.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/_src/vqs/plot_mc_convergence.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/driver/steady_state.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/driver/vmc.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/exact.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/driver/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/driver/tdvp.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_integrator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_integrator_params.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_integrator_state.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_rk/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_rk/_solver.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_solver.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/dynamics/_utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/geometry/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/geometry/cell.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/hilbert/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/hilbert/continuous_hilbert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/hilbert/particle.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/hilbert/random/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/hilbert/random/particle.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/models/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/models/fast_rnn.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/models/rnn.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/nn/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/nn/rnn/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/nn/rnn/cells.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/nn/rnn/layers.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/nn/rnn/layers_fast.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/nn/rnn/ordering.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/operator/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/operator/pyscf.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/qsr/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/qsr/dataset.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/qsr/driver.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/qsr/logic_helpers.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/vqs/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/experimental/vqs/io.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/_lattice_draw.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/_lattice_edge_logic.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/abstract_graph.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/graph/graph.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/abstract_hilbert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/constraint/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/constraint/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/constraint/multiple.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/constraint/sum.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/constraint/sum_partition.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/discrete_hilbert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/doubled_hilbert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/fock.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/homogeneous.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/constrained_generic.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/constrained_sum.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/constrained_sum_partitions.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/unconstrained.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/index/uniform_tensor.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/qubit.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/doubled.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/homogeneous.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/qubit.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/random/tensor_hilbert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/spin.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/spin_orbital_fermions.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/tensor_hilbert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/hilbert/tensor_hilbert_discrete.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_chunk_utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_expect.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_grad.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_jacobian/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_jacobian/default_mode.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_jacobian/jacobian_dense.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_jacobian/jacobian_pytree.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_math.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_ntk/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_ntk/logic.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_ntk/utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_scanmap.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_utils_tree.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/_vjp.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/lax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/sharding/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/jax/sharding/flexible_sharding.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/README.md +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/autoreg.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/deepset.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/equivariant.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/fast_autoreg.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/full_space.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/gaussian.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/jastrow.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/mlp.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/ndm.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/rbm.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/tensor_networks/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/tensor_networks/mpdo.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/tensor_networks/mps.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/models/utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/activation.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/apply_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/blocks/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/blocks/deepset.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/blocks/mlp.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/blocks/symmetry_sum.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/fast_masked_linear.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/nn/masked_linear.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_abstract_observable.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_abstract_super_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_bose_hubbard/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_bose_hubbard/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_bose_hubbard/jax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_bose_hubbard/numba.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_continuous_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_embed/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_embed/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_embed/discrete_jax_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_embed/discrete_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_embed/operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_fermion2nd/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_fermion2nd/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_fermion2nd/numba.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_graph_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_hamiltonian.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_heisenberg.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_ising/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_ising/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_ising/jax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_ising/numba.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_lazy.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_liouvillian.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/compile_helpers.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/convert.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/helpers.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/jax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_local_operator/numba.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_pauli_strings/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_pauli_strings/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_pauli_strings/jax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_pauli_strings/numba.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_potential.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_prod/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_prod/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_prod/discrete_jax_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_prod/discrete_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_prod/operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_sum/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_sum/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_sum/continuous.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_sum/discrete_jax_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_sum/discrete_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/_sum/operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/boson.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/fermion.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/permutation.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/operator/spin.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/linear_operator.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/preconditioner.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/common.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/default.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/qgt_jacobian.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/qgt_jacobian_common.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/qgt_jacobian_dense.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/qgt_jacobian_pytree.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/qgt/qgt_onthefly.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/optimizer/sr.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/parallel_tempering.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/continuous_gaussian.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/custom_numpy.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/fermion_2nd.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/fixed.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/global_flip_rule.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/hamiltonian_numpy.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/langevin.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/local.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/local_numpy.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/multiple.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/sampler/rules/tensor.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/stats/_autocorr.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/stats/mc_stats_old.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/stats/mpi_stats.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/tools/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/tools/_common.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/tools/_cpu_info.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/tools/check_mpi.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/tools/djaxrun.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/tools/info.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/_dependencies_check.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/_serialization.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/api_utils.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/array.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/citations/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/citations/cli.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/citations/core.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/citations/docs.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/deprecation.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/dispatch.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/display/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/display/repr.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/float.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/_point_group.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/_semigroup.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/axial.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/cubic.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/icosa.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/group/planar.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/history/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/history/history.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/holomorphic.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/iterators.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/jax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/equinox.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/flax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/haiku.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/jax.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/nnx.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/model_frameworks/nnx_wrapped.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/mpi/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/mpi/mpi.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/mpi/primitives.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/numbers.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/optional_deps.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/partial.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/seed.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/static_number.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/static_range.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/struct/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/struct/fields.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/summation.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/timing.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/types.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/utils/version_check.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/base.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/full_summ/__init__.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/full_summ/expect.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_mixed_state/expect.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_mixed_state/expect_chunked.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/expect_forces.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/expect_forces_chunked.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/expect_grad.py +0 -0
- {netket-3.22.0.dev3 → netket-3.22.1}/netket/vqs/mc/mc_state/expect_grad_chunked.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: NetKet
|
|
3
|
-
Version: 3.22.
|
|
3
|
+
Version: 3.22.1
|
|
4
4
|
Summary: Netket : Machine Learning toolbox for many-body quantum systems.
|
|
5
5
|
Project-URL: homepage, https://www.netket.org
|
|
6
6
|
Project-URL: documentation, https://netket.readthedocs.io/en/latest/#
|
|
@@ -19,14 +19,14 @@ Classifier: Programming Language :: Python :: 3
|
|
|
19
19
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
20
20
|
Requires-Python: >=3.11
|
|
21
21
|
Requires-Dist: einops>=0.8.1
|
|
22
|
-
Requires-Dist: equinox>=0.
|
|
22
|
+
Requires-Dist: equinox>=0.12.2
|
|
23
23
|
Requires-Dist: flax>=0.10.6
|
|
24
24
|
Requires-Dist: igraph>=0.10.0
|
|
25
25
|
Requires-Dist: jax>=0.7.0
|
|
26
26
|
Requires-Dist: numba>=0.59
|
|
27
27
|
Requires-Dist: numpy<3.0,>=1.20
|
|
28
28
|
Requires-Dist: optax<0.3,>=0.2.2
|
|
29
|
-
Requires-Dist: orjson<4,>=3.
|
|
29
|
+
Requires-Dist: orjson<4,>=3.10.7
|
|
30
30
|
Requires-Dist: plum-dispatch>=2.4
|
|
31
31
|
Requires-Dist: rich>=12.0
|
|
32
32
|
Requires-Dist: scipy<2,>=1.5.3
|
|
@@ -51,7 +51,7 @@ Requires-Dist: wheel>=0.38.1; extra == 'dev'
|
|
|
51
51
|
Provides-Extra: docs
|
|
52
52
|
Requires-Dist: ipywidgets>=8.1.7; extra == 'docs'
|
|
53
53
|
Requires-Dist: myst-nb<1.5,>=1.0; extra == 'docs'
|
|
54
|
-
Requires-Dist: myst-parser<5.
|
|
54
|
+
Requires-Dist: myst-parser<5.2.0,>=2.0.0; extra == 'docs'
|
|
55
55
|
Requires-Dist: nbconvert>=7.16.6; extra == 'docs'
|
|
56
56
|
Requires-Dist: sphinx-autodoc-typehints<4.0,>=1.22; extra == 'docs'
|
|
57
57
|
Requires-Dist: sphinx-book-theme<1.3,>=1.1; extra == 'docs'
|
|
@@ -62,6 +62,7 @@ Requires-Dist: sphinxcontrib-fulltoc~=1.2.0; extra == 'docs'
|
|
|
62
62
|
Requires-Dist: sphinxcontrib-jsmath~=1.0.1; extra == 'docs'
|
|
63
63
|
Provides-Extra: extra
|
|
64
64
|
Requires-Dist: h5py>=3.7.0; extra == 'extra'
|
|
65
|
+
Requires-Dist: mlflow>=2.0.0; extra == 'extra'
|
|
65
66
|
Requires-Dist: openfermion>=1.0.0; extra == 'extra'
|
|
66
67
|
Requires-Dist: qutip>=4; extra == 'extra'
|
|
67
68
|
Requires-Dist: tensorboardx>=2.0.0; extra == 'extra'
|
|
@@ -16,7 +16,7 @@ def get_forward_operator(driver):
|
|
|
16
16
|
``@get_forward_operator.dispatch`` for custom driver types.
|
|
17
17
|
|
|
18
18
|
Example:
|
|
19
|
-
class VMC(
|
|
19
|
+
class VMC(AbstractOptimizationDriver):
|
|
20
20
|
...
|
|
21
21
|
|
|
22
22
|
@get_forward_operator.dispatch
|
|
@@ -59,7 +59,7 @@ class AutoChunkSize(AbstractCallback):
|
|
|
59
59
|
|
|
60
60
|
from netket._src.callbacks.auto_chunk_size import get_forward_operator
|
|
61
61
|
|
|
62
|
-
class MyDriver(
|
|
62
|
+
class MyDriver(AbstractOptimizationDriver):
|
|
63
63
|
def __init__(self, hamiltonian, ...):
|
|
64
64
|
self._ham = hamiltonian
|
|
65
65
|
...
|
|
@@ -6,7 +6,7 @@ class StopRun(Exception):
|
|
|
6
6
|
Exception to be raised by callbacks to gracefully stop the optimisation loop.
|
|
7
7
|
|
|
8
8
|
Raise this exception (or a subclass of it) from any callback hook to stop
|
|
9
|
-
the :meth:`~netket.driver.
|
|
9
|
+
the :meth:`~netket.driver.AbstractDriver.run` loop early.
|
|
10
10
|
The driver will catch it, call
|
|
11
11
|
:meth:`~netket.callbacks.AbstractCallback.on_run_end` on all callbacks, and
|
|
12
12
|
then return normally — no traceback is printed and no exception propagates to
|
|
@@ -104,7 +104,7 @@ class AbstractCallback(struct.Pytree, mutable=True):
|
|
|
104
104
|
|
|
105
105
|
At this point:
|
|
106
106
|
|
|
107
|
-
- The loss and its gradient have been computed by :meth:`~netket.driver.
|
|
107
|
+
- The loss and its gradient have been computed by :meth:`~netket.driver.AbstractDriver.compute_loss_and_update`.
|
|
108
108
|
- The step has been accepted (not rejected by :meth:`on_compute_update_end`).
|
|
109
109
|
- ``driver.step_count`` still refers to the *current* step — it has not yet been incremented.
|
|
110
110
|
- The variational state parameters have **not** yet changed.
|
|
@@ -18,26 +18,27 @@ import numpy as np
|
|
|
18
18
|
|
|
19
19
|
from netket.utils import struct
|
|
20
20
|
|
|
21
|
+
from netket._src.callbacks.base import AbstractCallback, StopRun
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
|
|
24
|
+
class ConvergenceStopping(AbstractCallback, mutable=True):
|
|
23
25
|
"""A simple callback to stop the optimisation when the monitored quantity gets
|
|
24
26
|
below a certain threshold for at least `patience` steps.
|
|
25
27
|
"""
|
|
26
28
|
|
|
27
|
-
target: float = struct.field(
|
|
29
|
+
target: float = struct.field(pytree_node=False)
|
|
28
30
|
"""Target value for the monitored quantity. Training will stop if the driver drops below this value."""
|
|
29
|
-
monitor: str = struct.field(
|
|
31
|
+
monitor: str = struct.field(pytree_node=False)
|
|
30
32
|
"""Loss statistic to monitor. Should be one of 'mean', 'variance', 'error_of_mean'."""
|
|
31
|
-
smoothing_window: int = struct.field(
|
|
33
|
+
smoothing_window: int = struct.field(pytree_node=False)
|
|
32
34
|
"""The loss is smoothed over the last `smoothing_window` iterations to
|
|
33
|
-
reduce statistical fluctuations"""
|
|
34
|
-
patience: int = struct.field(
|
|
35
|
+
reduce statistical fluctuations."""
|
|
36
|
+
patience: int = struct.field(pytree_node=False)
|
|
35
37
|
"""The loss must be consistently below this value for this number of
|
|
36
38
|
iterations in order to stop the optimisation."""
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_patience_counter: int
|
|
40
|
+
_loss_window: deque = struct.field(pytree_node=False, serialize=False)
|
|
41
|
+
_patience_counter: int = struct.field(pytree_node=False, serialize=False, default=0)
|
|
41
42
|
|
|
42
43
|
def __init__(
|
|
43
44
|
self,
|
|
@@ -68,21 +69,10 @@ class ConvergenceStopping(struct.Pytree, mutable=True):
|
|
|
68
69
|
self.smoothing_window = smoothing_window
|
|
69
70
|
self.patience = patience
|
|
70
71
|
|
|
71
|
-
self._loss_window
|
|
72
|
-
self._patience_counter
|
|
73
|
-
|
|
74
|
-
def __call__(self, step, log_data, driver):
|
|
75
|
-
"""
|
|
76
|
-
A boolean function that determines whether or not to stop training.
|
|
72
|
+
self._loss_window = deque([], maxlen=smoothing_window)
|
|
73
|
+
self._patience_counter = 0
|
|
77
74
|
|
|
78
|
-
|
|
79
|
-
step: An integer corresponding to the step (iteration or epoch) in training.
|
|
80
|
-
log_data: A dictionary containing log data for training.
|
|
81
|
-
driver: A NetKet variational driver.
|
|
82
|
-
|
|
83
|
-
Returns:
|
|
84
|
-
A boolean. If True, training continues, else, it does not.
|
|
85
|
-
"""
|
|
75
|
+
def on_step_end(self, step, log_data, driver):
|
|
86
76
|
loss = np.asarray(np.real(getattr(log_data[driver._loss_name], self.monitor)))
|
|
87
77
|
|
|
88
78
|
self._loss_window.append(loss)
|
|
@@ -94,6 +84,7 @@ class ConvergenceStopping(struct.Pytree, mutable=True):
|
|
|
94
84
|
self._patience_counter = 0
|
|
95
85
|
|
|
96
86
|
if self._patience_counter > self.patience:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
raise StopRun(
|
|
88
|
+
f"ConvergenceStopping: smoothed loss {loss_smooth:.6g} has been below "
|
|
89
|
+
f"target {self.target} for {self._patience_counter} steps."
|
|
90
|
+
)
|
|
@@ -12,43 +12,43 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
import numpy as np
|
|
17
16
|
|
|
18
17
|
from netket.utils import struct
|
|
19
18
|
|
|
19
|
+
from netket._src.callbacks.base import AbstractCallback, StopRun
|
|
20
|
+
|
|
20
21
|
|
|
21
|
-
class EarlyStopping(
|
|
22
|
+
class EarlyStopping(AbstractCallback, mutable=True):
|
|
22
23
|
"""A simple callback to stop NetKet if there are no more improvements in the training.
|
|
23
24
|
based on `driver._loss_name`.
|
|
24
25
|
"""
|
|
25
26
|
|
|
26
|
-
min_delta: float
|
|
27
|
+
min_delta: float = struct.field(pytree_node=False)
|
|
27
28
|
"""Minimum change in the monitored quantity to qualify as an improvement."""
|
|
28
|
-
min_reldelta: float
|
|
29
|
+
min_reldelta: float = struct.field(pytree_node=False)
|
|
29
30
|
"""Minimum relative change in the monitored quantity to qualify as an improvement.
|
|
30
31
|
|
|
31
32
|
This behaves similarly to `min_delta` but is more useful for intensive quantities that
|
|
32
33
|
converge to 0, where absolute tolerances might not be effective.
|
|
33
34
|
"""
|
|
34
|
-
patience: int | float
|
|
35
|
+
patience: int | float = struct.field(pytree_node=False)
|
|
35
36
|
"""Number of epochs with no improvement after which training will be stopped."""
|
|
36
|
-
baseline: float | None
|
|
37
|
+
baseline: float | None = struct.field(pytree_node=False)
|
|
37
38
|
"""Baseline value for the monitored quantity. Training will stop if the driver is above the baseline."""
|
|
38
|
-
monitor: str
|
|
39
|
+
monitor: str = struct.field(pytree_node=False)
|
|
39
40
|
"""Loss statistic to monitor. Should be one of 'mean', 'variance', 'error_of_mean'."""
|
|
40
|
-
start_from_step: int
|
|
41
|
+
start_from_step: int = struct.field(pytree_node=False)
|
|
41
42
|
"""Number of steps to wait before the callback has any effect."""
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
_best_val: float = np.inf
|
|
47
|
-
"""Best value of the loss observed up to this iteration. """
|
|
48
|
-
_best_iter: int
|
|
44
|
+
_best_val: float = struct.field(pytree_node=False, serialize=False, default=np.inf)
|
|
45
|
+
"""Best value of the loss observed up to this iteration."""
|
|
46
|
+
_best_iter: int = struct.field(pytree_node=False, serialize=False, default=0)
|
|
49
47
|
"""Iteration at which the `_best_val` was observed."""
|
|
50
|
-
_best_patience_counter: int
|
|
51
|
-
|
|
48
|
+
_best_patience_counter: int = struct.field(
|
|
49
|
+
pytree_node=False, serialize=False, default=0
|
|
50
|
+
)
|
|
51
|
+
"""Stores how many steps have elapsed without an improvement."""
|
|
52
52
|
|
|
53
53
|
def __init__(
|
|
54
54
|
self,
|
|
@@ -87,21 +87,9 @@ class EarlyStopping(struct.Pytree, mutable=True):
|
|
|
87
87
|
self._best_iter = 0
|
|
88
88
|
self._best_patience_counter = 0
|
|
89
89
|
|
|
90
|
-
def
|
|
91
|
-
"""
|
|
92
|
-
A boolean function that determines whether or not to stop training.
|
|
93
|
-
|
|
94
|
-
Args:
|
|
95
|
-
step: An integer corresponding to the step (iteration or epoch) in training.
|
|
96
|
-
log_data: A dictionary containing log data for training.
|
|
97
|
-
driver: A NetKet variational driver.
|
|
98
|
-
|
|
99
|
-
Returns:
|
|
100
|
-
A boolean. If True, training continues, else, it does not.
|
|
101
|
-
"""
|
|
102
|
-
|
|
90
|
+
def on_step_end(self, step, log_data, driver):
|
|
103
91
|
if step < self.start_from_step:
|
|
104
|
-
return
|
|
92
|
+
return
|
|
105
93
|
|
|
106
94
|
loss = np.real(getattr(log_data[driver._loss_name], self.monitor))
|
|
107
95
|
|
|
@@ -113,19 +101,16 @@ class EarlyStopping(struct.Pytree, mutable=True):
|
|
|
113
101
|
if self.baseline is None:
|
|
114
102
|
self._best_patience_counter = 0
|
|
115
103
|
elif self._is_improvement(loss, self.baseline):
|
|
116
|
-
# If using baseline, update patience only if we are better than baseline
|
|
117
104
|
self._best_patience_counter = 0
|
|
118
105
|
|
|
119
106
|
if self._best_patience_counter > self.patience:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
107
|
+
raise StopRun(
|
|
108
|
+
f"EarlyStopping: no improvement detected after {self._best_patience_counter} steps "
|
|
109
|
+
f"(best value {self._best_val} at step {self._best_iter})."
|
|
110
|
+
)
|
|
123
111
|
|
|
124
112
|
def _is_improvement(self, loss, target):
|
|
125
|
-
# minimal value for absolute and relative improvement
|
|
126
113
|
abs_minval = target - self.min_delta
|
|
127
114
|
rel_minval = target * (1 - self.min_reldelta)
|
|
128
|
-
# minimval value that qualify as an improvement
|
|
129
115
|
minval = min(abs_minval, rel_minval)
|
|
130
|
-
|
|
131
116
|
return loss < minval
|
|
@@ -16,21 +16,21 @@ import numpy as np
|
|
|
16
16
|
|
|
17
17
|
from netket.utils import struct
|
|
18
18
|
|
|
19
|
+
from netket._src.callbacks.base import AbstractCallback, StopRun
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
class InvalidLossStopping(
|
|
21
|
+
|
|
22
|
+
class InvalidLossStopping(AbstractCallback, mutable=True):
|
|
22
23
|
"""A simple callback to stop the optimisation when the monitored quantity becomes
|
|
23
24
|
invalid for at least `patience` steps.
|
|
24
25
|
"""
|
|
25
26
|
|
|
26
|
-
monitor: str
|
|
27
|
+
monitor: str = struct.field(pytree_node=False)
|
|
27
28
|
"""Loss statistic to monitor. Should be one of 'mean', 'variance', 'error_of_mean'."""
|
|
28
|
-
patience: int | float
|
|
29
|
+
patience: int | float = struct.field(pytree_node=False)
|
|
29
30
|
"""Number of epochs with invalid loss after which training will be stopped."""
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"""Last valid iteration, to check against patience"""
|
|
32
|
+
_last_valid_iter: int = struct.field(pytree_node=False, serialize=False, default=0)
|
|
33
|
+
"""Last valid iteration, to check against patience."""
|
|
34
34
|
|
|
35
35
|
def __init__(self, monitor: str = "mean", patience: int | float = 0):
|
|
36
36
|
"""
|
|
@@ -48,23 +48,10 @@ class InvalidLossStopping(struct.Pytree, mutable=True):
|
|
|
48
48
|
"""
|
|
49
49
|
self.monitor = monitor
|
|
50
50
|
self.patience = patience
|
|
51
|
-
|
|
52
|
-
# caches
|
|
53
51
|
self._last_valid_iter = 0
|
|
54
52
|
|
|
55
|
-
def
|
|
56
|
-
|
|
57
|
-
A boolean function that determines whether or not to stop training.
|
|
58
|
-
|
|
59
|
-
Args:
|
|
60
|
-
step: An integer corresponding to the step (iteration or epoch) in training.
|
|
61
|
-
log_data: A dictionary containing log data for training.
|
|
62
|
-
driver: A NetKet variational driver.
|
|
63
|
-
|
|
64
|
-
Returns:
|
|
65
|
-
A boolean. If True, training continues, else, it does not.
|
|
66
|
-
"""
|
|
67
|
-
# clears the _last_valid_iter in case the driver was reset
|
|
53
|
+
def on_step_end(self, step, log_data, driver):
|
|
54
|
+
# reset if the driver was restarted
|
|
68
55
|
if driver.step_count < self._last_valid_iter:
|
|
69
56
|
self._last_valid_iter = 0
|
|
70
57
|
|
|
@@ -73,7 +60,9 @@ class InvalidLossStopping(struct.Pytree, mutable=True):
|
|
|
73
60
|
|
|
74
61
|
if not np.isfinite(loss):
|
|
75
62
|
if driver.step_count - self._last_valid_iter >= self.patience:
|
|
76
|
-
|
|
63
|
+
raise StopRun(
|
|
64
|
+
f"InvalidLossStopping: loss is not finite ({loss}) "
|
|
65
|
+
f"for {driver.step_count - self._last_valid_iter} steps."
|
|
66
|
+
)
|
|
77
67
|
else:
|
|
78
68
|
self._last_valid_iter = driver.step_count
|
|
79
|
-
return True
|
|
@@ -16,27 +16,27 @@ import time
|
|
|
16
16
|
|
|
17
17
|
from netket.utils import struct
|
|
18
18
|
|
|
19
|
+
from netket._src.callbacks.base import AbstractCallback, StopRun
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
|
|
22
|
+
class Timeout(AbstractCallback, mutable=True):
|
|
21
23
|
"""A simple callback to stop NetKet after some time has passed.
|
|
22
24
|
|
|
23
25
|
This callback monitors whether a driver has been training for more
|
|
24
26
|
than a given timeout in order to hard stop training.
|
|
25
27
|
"""
|
|
26
28
|
|
|
27
|
-
timeout: float
|
|
29
|
+
timeout: float = struct.field(pytree_node=False)
|
|
28
30
|
"""Number of seconds to wait before the training will be stopped."""
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Internal field storing the time at which the
|
|
34
|
-
performed.
|
|
35
|
-
"""
|
|
32
|
+
_init_time: float | None = struct.field(
|
|
33
|
+
pytree_node=False, serialize=False, default=None
|
|
34
|
+
)
|
|
35
|
+
"""Internal field storing the time at which the run started."""
|
|
36
36
|
|
|
37
37
|
def __init__(self, timeout: float):
|
|
38
38
|
"""
|
|
39
|
-
Stops the optimisation after a certain time
|
|
39
|
+
Stops the optimisation after a certain time interval.
|
|
40
40
|
|
|
41
41
|
Args:
|
|
42
42
|
timeout: number of seconds after which the optimisation will
|
|
@@ -45,28 +45,13 @@ class Timeout(struct.Pytree, mutable=True):
|
|
|
45
45
|
if not timeout > 0:
|
|
46
46
|
raise ValueError("`timeout` must be larger than 0.")
|
|
47
47
|
self.timeout = timeout
|
|
48
|
-
|
|
49
48
|
self._init_time = None
|
|
50
49
|
|
|
51
|
-
def
|
|
52
|
-
|
|
53
|
-
A boolean function that determines whether or not to stop training.
|
|
54
|
-
|
|
55
|
-
Args:
|
|
56
|
-
step: An integer corresponding to the step (iteration or epoch) in training.
|
|
57
|
-
log_data: A dictionary containing log data for training.
|
|
58
|
-
driver: A NetKet variational driver.
|
|
59
|
-
|
|
60
|
-
Returns:
|
|
61
|
-
A boolean. If True, training continues, else, it does not.
|
|
62
|
-
|
|
63
|
-
Note:
|
|
64
|
-
This callback does not make use of `step`, `log_data` nor `driver`.
|
|
65
|
-
"""
|
|
66
|
-
if self._init_time is None:
|
|
67
|
-
self._init_time = time.time()
|
|
50
|
+
def on_run_start(self, step, driver):
|
|
51
|
+
self._init_time = time.time()
|
|
68
52
|
|
|
53
|
+
def on_step_end(self, step, log_data, driver):
|
|
69
54
|
if time.time() - self._init_time >= self.timeout:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
55
|
+
raise StopRun(
|
|
56
|
+
f"Timeout: training stopped after {self.timeout:.1f} seconds."
|
|
57
|
+
)
|
|
@@ -31,8 +31,9 @@ class AbstractOptimizationDriver(AbstractDriver):
|
|
|
31
31
|
Adds an `optax <https://optax.readthedocs.io/en/latest/>`_ optimizer and
|
|
32
32
|
implements :meth:`update_parameters` via :func:`apply_gradient`.
|
|
33
33
|
|
|
34
|
-
Subclass this
|
|
35
|
-
|
|
34
|
+
Subclass this when implementing a new optimization driver. The public
|
|
35
|
+
name :class:`AbstractVariationalDriver` is currently kept as a compatibility
|
|
36
|
+
alias for this class.
|
|
36
37
|
"""
|
|
37
38
|
|
|
38
39
|
_optimizer: Optimizer = struct.field(pytree_node=False, serialize=False)
|
|
@@ -313,7 +313,7 @@ class AbstractDriver(struct.Pytree, mutable=True):
|
|
|
313
313
|
Example of subclassing:
|
|
314
314
|
|
|
315
315
|
.. code:: python
|
|
316
|
-
class MyDriver(
|
|
316
|
+
class MyDriver(AbstractDriver):
|
|
317
317
|
...
|
|
318
318
|
def _default_callbacks(self, *args, **kwargs):
|
|
319
319
|
callbacks = super()._default_callbacks(*args, **kwargs)
|
|
@@ -197,7 +197,7 @@ class AbstractVariationalDriver(abc.ABC):
|
|
|
197
197
|
self._optimizer = optimizer
|
|
198
198
|
if optimizer is not None:
|
|
199
199
|
self._optimizer_state = optimizer.init(self.state.parameters)
|
|
200
|
-
if config.
|
|
200
|
+
if config.netket_sharding:
|
|
201
201
|
self._optimizer_state = jax.lax.with_sharding_constraint(
|
|
202
202
|
self._optimizer_state,
|
|
203
203
|
NamedSharding(jax.sharding.get_abstract_mesh(), P()),
|
|
@@ -433,7 +433,7 @@ def apply_gradient(optimizer_fun, optimizer_state, dp, params):
|
|
|
433
433
|
|
|
434
434
|
new_params = optax.apply_updates(params, updates)
|
|
435
435
|
|
|
436
|
-
if config.
|
|
436
|
+
if config.netket_sharding:
|
|
437
437
|
sharding = NamedSharding(jax.sharding.get_abstract_mesh(), P())
|
|
438
438
|
new_optimizer_state = jax.lax.with_sharding_constraint(
|
|
439
439
|
new_optimizer_state, sharding
|
|
@@ -24,8 +24,8 @@ from netket._src.ngd.sr_srt_common import sr, srt, get_samples_and_pdf
|
|
|
24
24
|
from netket._src.ngd.srt_onthefly import srt_onthefly
|
|
25
25
|
from netket._src.nn.apply_operator.functional import make_logpsi_op_afun
|
|
26
26
|
from netket._src.callbacks.auto_chunk_size import get_forward_operator
|
|
27
|
-
from netket.
|
|
28
|
-
from netket.
|
|
27
|
+
from netket._src.observable.infidelity.expect import get_local_estimator
|
|
28
|
+
from netket._src.observable.infidelity import InfidelityOperator
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
ApplyFun = Callable[[PyTree, Array], Array]
|
|
@@ -344,7 +344,7 @@ class Infidelity_SR(AbstractOptimizationDriver):
|
|
|
344
344
|
@timing.timed
|
|
345
345
|
def _log_additional_data(self, log_dict: dict):
|
|
346
346
|
"""
|
|
347
|
-
Method to be implemented in sub-classes of
|
|
347
|
+
Method to be implemented in sub-classes of AbstractDriver to
|
|
348
348
|
log additional data at every step.
|
|
349
349
|
This method is called at every iteration when executing with `run`.
|
|
350
350
|
|
|
@@ -512,14 +512,13 @@ class VMC_SR(AbstractOptimizationDriver):
|
|
|
512
512
|
@timing.timed
|
|
513
513
|
def _log_additional_data(self, log_dict: dict):
|
|
514
514
|
"""
|
|
515
|
-
Method to be implemented in sub-classes of
|
|
515
|
+
Method to be implemented in sub-classes of AbstractDriver to
|
|
516
516
|
log additional data at every step.
|
|
517
517
|
This method is called at every iteration when executing with `run`.
|
|
518
518
|
|
|
519
519
|
Args:
|
|
520
520
|
log_dict: The dictionary containing all logged data. It must be
|
|
521
521
|
**modified in-place** adding new keys.
|
|
522
|
-
step: the current step number.
|
|
523
522
|
"""
|
|
524
523
|
super()._log_additional_data(log_dict)
|
|
525
524
|
|