User Guide
Before we start it would be useful to define some terminology that will be used throughout the documentation.
Terminology
- Type Annotation: (type hints) types you set while defining a variable after the
:
symbol. - Field Declaration: default values for class variables that are set using the
field
function. - Node Field: A field that is declared as a node, that is, its content is part of the tree leaves.
- Static Field: A field that is declared as a static, that is, its content is not part of the leaves.
- Field Kind: An associated type, separate from the type annotation, that gives semantic meaning to the field.
In code these terms map to the following:
class MyModule(to.Tree):
# field annotation -----------declaration-------------
# v v v v
some_field : jnp.ndarray = to.field(node=True, kind=Parameter)
# ^ ^
# node status field kind