Conversation
I don't think that's right. At present, Now that we allow shared parameters, the word "tree" is slightly misleading. But I don't think that erasing the distinction and calling two different things "state" is better. IMO even an imperfect name is helpful to understand what the code is doing.
The docs also say "tree" here, and this PR does not touch that. In Flux they say |
|
The Flux usage example in this package's documentation shows state = Optimisers.setup(rule, model); # initialise this optimiser's momentum etc.Can't we consider a leaf also a tree/state ? (a graph with a single node is a tree) My main issue is that each time I look at this repo I wonder for a while what is this argument tree, it's not immediate to link it to the optimizer's state. Also |
|
Maybe |
|
Optax uses |
This may well pre-date the re-write -- at some point everything was called |
|
We discussed this on call. There was agreement that the structure is no longer a tree, so calling it a tree is confusing. But after comparing to other libraries like Optax, we think that users/rule writers should have a rule-specific view of the package. Meaning that they see Internally, we think that non-leaf state should be |
The most relevant is using
statein place oftreein the interface.jl file, consistently with rules.jl and the docs.