Skip to content

Update NeuralNetworkParameters requirement from 0.3 to 0.3, 0.5 - #58

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/julia/NeuralNetworkParameters-0.3-and-0.5
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/julia/NeuralNetworkParameters-0.3-and-0.5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 18, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on NeuralNetworkParameters to permit the latest version.

Release notes

Sourced from NeuralNetworkParameters's releases.

v0.5.2

NeuralNetworkParameters v0.5.2

Diff since v0.5.1

Fixed

  • A walk inside the function of another walk allocates nothing, except a storage walk of four or more sets inside a walk of fewer (K11, #44). On 0.5.1, mapparameters! or foreachparameters in the function of a foreachparameters, mapstorage! in a mapstorage!, and each fold in itself boxed the inner function at every leaf: on a set of 3 leaves, 96 B per step for the in-place walks, 192 B and 240 B with five captured Float32 and Float64 coefficients, and 144 B for the folds. The inner walk put its own methods on the inference stack a second time, with a function argument nested one level deeper, and inference widened that call. A per-leaf optimizer step runs such a walk: the per-leaf Adam step of a CompositeMethod in GeometricOptimizers allocated 256 B (Float32) and 288 B (Float64) on a dense set of 3 leaves where Adam on the whole set allocates nothing, and now allocates nothing as well; on a set with a Stiefel leaf it allocates what Adam on the whole set allocates. foreachparameters, mapparameters!, mapstorage!, foldparameters and foldstorage are now one generated body per tree type, with one call per leaf and no recursion at run time. The nothing skip, the nothing raise of a fold, the key and arity errors and the fold order are as before; a key or arity error below the top of the tree is now raised before f runs on any leaf, where 0.5.1 ran f on the leaves before the branch at fault. test/walk.jl tests each walk inside itself in Float32 and Float64, and scripts/nested_walk_cost.jl, which is new, measures it.

Changed

  • The first call of mapparameters! and mapstorage! compiles about 0.1 s longer on a larger set, and the folds compile as fast or faster. One cold process per row, Julia 1.13.1, load average about 10, scripts/nested_walk_cost.jl <walk> <shape>: mapparameters! takes 0.03 s against 0.06 s on 0.5.1 on 3 leaves, 0.16 s against 0.09 s on 64 leaves of depth 4, and 1.24 s against 1.11 s on 369 leaves of depth 1; foldparameters takes 0.11 s against 0.28 s on 369 leaves, and foldstorage 0.15 s against 0.32 s. A later call takes the same time and allocates nothing on both. docs/src/design.md has the full table.

Merged pull requests:

  • Generate the in-place walks and the folds per tree, to cut the cost of a walk inside another walk (#43) (@​michakraus)
Changelog

Sourced from NeuralNetworkParameters's changelog.

[0.5.2] — 2026-10-13

Fixed

  • A walk inside the function of another walk allocates nothing, except a storage walk of four or more sets inside a walk of fewer (K11, #44). On 0.5.1, mapparameters! or foreachparameters in the function of a foreachparameters, mapstorage! in a mapstorage!, and each fold in itself boxed the inner function at every leaf: on a set of 3 leaves, 96 B per step for the in-place walks, 192 B and 240 B with five captured Float32 and Float64 coefficients, and 144 B for the folds. The inner walk put its own methods on the inference stack a second time, with a function argument nested one level deeper, and inference widened that call. A per-leaf optimizer step runs such a walk: the per-leaf Adam step of a CompositeMethod in GeometricOptimizers allocated 256 B (Float32) and 288 B (Float64) on a dense set of 3 leaves where Adam on the whole set allocates nothing, and now allocates nothing as well; on a set with a Stiefel leaf it allocates what Adam on the whole set allocates. foreachparameters, mapparameters!, mapstorage!, foldparameters and foldstorage are now one generated body per tree type, with one call per leaf and no recursion at run time. The nothing skip, the nothing raise of a fold, the key and arity errors and the fold order are as before; a key or arity error below the top of the tree is now raised before f runs on any leaf, where 0.5.1 ran f on the leaves before the branch at fault. test/walk.jl tests each walk inside itself in Float32 and Float64, and scripts/nested_walk_cost.jl, which is new, measures it.

Changed

  • The first call of mapparameters! and mapstorage! compiles about 0.1 s longer on a larger set, and the folds compile as fast or faster. One cold process per row, Julia 1.13.1, load average about 10, scripts/nested_walk_cost.jl <walk> <shape>: mapparameters! takes 0.03 s against 0.06 s on 0.5.1 on 3 leaves, 0.16 s against 0.09 s on 64 leaves of depth 4, and 1.24 s against 1.11 s on 369 leaves of depth 1; foldparameters takes 0.11 s against 0.28 s on 369 leaves, and foldstorage 0.15 s against 0.32 s. A later call takes the same time and allocates nothing on both. docs/src/design.md has the full table.

[0.5.1] — 2026-10-11

Changed

  • The walks across the children of one branch share three internal primitives, in the new file src/unrolled.jl. _unrolled_map, _unrolled_foldl and _unrolled_mapaccum are generated bodies, and _unrolled_foreach is the map called for its effect. _unrolled_mapaccum is a map that carries a state from child to child; parameterlayout uses it to carry the offset. Every walk calls one of them, among them mapparameters, mapstorage, foreachparameters, mapparameters!, mapstorage!, foldparameters, foldstorage, flatten!, unflatten, unflatten!, parameterlayout, parameter_eltype, map_cotangent, the hole fill of a gradient and the default storage_gradient of a structural tangent. src/ had 15 generated bodies and now has 3. No value of a call whose keys agree with the layout changes (see Fixed for the other calls), and the existing tests pass unchanged apart from comments. The test file test/unrolled.jl is new.
  • The storage_gradient docstring names a leaf whose one field is a Tuple of blocks that is its storage. Its structural tangent raises an ArgumentError, as before; the docstring gives the

... (truncated)

Commits
  • f35e7f1 Release 0.5.2
  • 77f9b10 Generate the in-place walks and the folds per tree, to cut the cost of a walk...
  • 1f068b1 Release 0.5.1
  • 3992178 Record three open issues from #42
  • 4e13ca1 Simplify: walks on three unrolled primitives, design notes page (part N2b, ta...
  • 17d8356 Release 0.5.0
  • f91aeff One gradient rule, one element type per set, no holes in a gradient (#41)
  • c0785f0 Sync the shared git hooks
  • e3a7586 Move the top-level test files that mirror no source file (#40)
  • 845dec9 Move the doctests into their own test group (#39)
  • Additional commits viewable in compare view

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 show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @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)

Updates the requirements on [NeuralNetworkParameters](https://github.com/JuliaGNI/NeuralNetworkParameters.jl) to permit the latest version.
- [Release notes](https://github.com/JuliaGNI/NeuralNetworkParameters.jl/releases)
- [Changelog](https://github.com/JuliaGNI/NeuralNetworkParameters.jl/blob/main/CHANGELOG.md)
- [Commits](JuliaGNI/NeuralNetworkParameters.jl@v0.3.0...v0.5.2)

---
updated-dependencies:
- dependency-name: NeuralNetworkParameters
  dependency-version: 0.5.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file julia Pull requests that update julia code labels Oct 18, 2026
@codecov

codecov Bot commented Oct 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.83%. Comparing base (e111300) to head (c76137b).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #58   +/-   ##
=======================================
  Coverage   49.83%   49.83%           
=======================================
  Files          13       13           
  Lines         616      616           
=======================================
  Hits          307      307           
  Misses        309      309           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file julia Pull requests that update julia code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants