quantum-ods / qmlcourse

Курс по квантовому машинному обучению
https://quantum-ods.github.io/qmlcourse/
Creative Commons Attribution 4.0 International
227 stars 32 forks source link

dependabot: bump netket from 3.8 to 3.9.2 #558

Closed dependabot[bot] closed 1 year ago

dependabot[bot] commented 1 year ago

Bumps netket from 3.8 to 3.9.2.

Release notes

Sourced from netket's releases.

NetKet 3.9.2 (bug fix)

What's Changed

Full Changelog: https://github.com/netket/netket/compare/v3.9.1...v3.9.2

3.9.1

Fix a bug in the conversion of paulistrings to jax operators

NetKet 3.9 (🔥 24 July 2023)

This release requires Python 3.8 and Jax 0.4.

New Features

  • netket.callbacks.EarlyStopping now supports relative tolerances for determining when to stop #1481.
  • netket.callbacks.ConvergenceStopping has been added, which can stop a driver when the loss function reaches a certain threshold #1481.
  • A new base class {class}netket.operator.DiscreteJaxOperator has been added, which will be used as a base class for a set of operators that are jax-compatible #1506.
  • {func}netket.sampler.rules.HamiltonianRule has been split into two implementations, {class}netket.sampler.rules.HamiltonianRuleJax and {class}netket.sampler.rules.HamiltonianRuleNumba, which are to be used for {class}~netket.operator.DiscreteJaxOperator and standard numba-based {class}~netket.operator.DiscreteOperators. The user-facing API is unchanged, but the returned type might now depend on the input operator #1514.
  • {class}netket.operator.PauliStringsJax is a new operator that behaves as netket.operator.PauliStrings but is Jax-compatible, meaning that it can be used inside of jax-jitted contexts and works better with chunking. It can also be constructed starting from a standard Ising operator by calling operator.to_jax_operator() #1506.
  • {class}netket.operator.IsingJax is a new operator that behaves as netket.operator.Ising but is Jax-compatible, meaning that it can be used inside of jax-jitted contexts and works better with chunking. It can also be constructed starting from a standard Ising operator by calling operator.to_jax_operator() #1506.
  • Added a new method {meth}netket.operator.LocalOperator.to_pauli_strings to convert {class}netket.operator.LocalOperator to {class}netket.operator.PauliStrings. As PauliStrings can be converted to Jax-operators, this now allows to convert arbitrary operators to Jax-compatible ones #1515.
  • The constructor of {meth}~netket.optimizer.qgt.QGTOnTheFly now takes an optional boolean argument holomorphic : Optional[bool] in line with the other geometric tensor implementations. This flag does not affect the computation algorithm, but will be used to raise an error if the user attempts to call {meth}~netket.optimizer.qgt.QGTOnTheFly.to_dense() with a non-holomorphic ansatz. While this might break past code, the numerical results were incorrect.

Breaking Changes

  • The first two axes in the output of the samplers have been swapped, samples are now of shape (n_chains, n_samples_per_chain, ...) consistent with netket.stats.statistics. Custom samplers need to be updated to return arrays of shape (n_chains, n_samples_per_chain, ...) instead of (n_samples_per_chain, n_chains, ...). #1502
  • The tolerance arguments of {class}~netket.experimental.dynamics.TDVPSchmitt have all been renamed to more understandable quantities without inspecting the source code. In particular, num_tol has been renamed to rcond, svd_tol to rcond_smooth and noise_tol to noise_atol.

Deprecations

  • netket.vqs.ExactState has been renamed to {class}netket.vqs.FullSumState to better reflect what it does. Using the old name will now raise a warning #1477.

Known Issues

  • The new Jax-friendly operators do not work with {class}netket.vqs.FullSumState because they are not hashable. This will be fixed in a minor patch (coming soon).
Changelog

Sourced from netket's changelog.

NetKet 3.9.2

Bug Fixes

  • Fix a bug introduced in version 3.9 for {class}netket.experimental.driver.TDVPSchmitt which resulted in the wrong dynamics #1551.

NetKet 3.9.1

Bug Fixes

  • Fix a bug in the construction of {class}netket.operator.PauliStringsJax in some cases #1539.

NetKet 3.9 (🔥 24 July 2023)

This release requires Python 3.8 and Jax 0.4.

New Features

  • netket.callbacks.EarlyStopping now supports relative tolerances for determining when to stop #1481.
  • netket.callbacks.ConvergenceStopping has been added, which can stop a driver when the loss function reaches a certain threshold #1481.
  • A new base class {class}netket.operator.DiscreteJaxOperator has been added, which will be used as a base class for a set of operators that are jax-compatible #1506.
  • {func}netket.sampler.rules.HamiltonianRule has been split into two implementations, {class}netket.sampler.rules.HamiltonianRuleJax and {class}netket.sampler.rules.HamiltonianRuleNumba, which are to be used for {class}~netket.operator.DiscreteJaxOperator and standard numba-based {class}~netket.operator.DiscreteOperators. The user-facing API is unchanged, but the returned type might now depend on the input operator #1514.
  • {class}netket.operator.PauliStringsJax is a new operator that behaves as netket.operator.PauliStrings but is Jax-compatible, meaning that it can be used inside of jax-jitted contexts and works better with chunking. It can also be constructed starting from a standard Ising operator by calling operator.to_jax_operator() #1506.
  • {class}netket.operator.IsingJax is a new operator that behaves as netket.operator.Ising but is Jax-compatible, meaning that it can be used inside of jax-jitted contexts and works better with chunking. It can also be constructed starting from a standard Ising operator by calling operator.to_jax_operator() #1506.
  • Added a new method {meth}netket.operator.LocalOperator.to_pauli_strings to convert {class}netket.operator.LocalOperator to {class}netket.operator.PauliStrings. As PauliStrings can be converted to Jax-operators, this now allows to convert arbitrary operators to Jax-compatible ones #1515.
  • The constructor of {meth}~netket.optimizer.qgt.QGTOnTheFly now takes an optional boolean argument holomorphic : Optional[bool] in line with the other geometric tensor implementations. This flag does not affect the computation algorithm, but will be used to raise an error if the user attempts to call {meth}~netket.optimizer.qgt.QGTOnTheFly.to_dense() with a non-holomorphic ansatz. While this might break past code, the numerical results were incorrect.

Breaking Changes

  • The first two axes in the output of the samplers have been swapped, samples are now of shape (n_chains, n_samples_per_chain, ...) consistent with netket.stats.statistics. Custom samplers need to be updated to return arrays of shape (n_chains, n_samples_per_chain, ...) instead of (n_samples_per_chain, n_chains, ...). #1502
  • The tolerance arguments of {class}~netket.experimental.dynamics.TDVPSchmitt have all been renamed to more understandable quantities without inspecting the source code. In particular, num_tol has been renamed to rcond, svd_tol to rcond_smooth and noise_tol to noise_atol.

Deprecations

  • netket.vqs.ExactState has been renamed to {class}netket.vqs.FullSumState to better reflect what it does. Using the old name will now raise a warning #1477.

Known Issues

  • The new Jax-friendly operators do not work with {class}netket.vqs.FullSumState because they are not hashable. This will be fixed in a minor patch (coming soon).
Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 1 year ago

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.