Skip to content

v0.15.0

Choose a tag to compare

@ConnorStoneAstro ConnorStoneAstro released this 03 Feb 01:56
· 4 commits to main since this release
892bd28

What's Changed

Caskade now has "herarchical models" or the ability to place one simulator inside another to support vmap or other featuers which are explicitly required to have access to params at call time.

Caskade also now has param "groups", which allow dividing the params object into sub groups to give control over what call-time functions are used (vmap, jacobian, grad, etc.).

Breaking changes

  • Param shapes are now more solidly defined. If a user sets a shape then it will not change as the value is set. There are three possibilities when setting the value, first it is incompatible with the shape (i.e. a scalar when the shape requires a vector) which will throw an error, second the value matches the shape, third the value has leading batch dimensions (value shape of (4,2) and param shape of (2,) means there is a batch of size 4)
  • Param names must now always be valid python identifiers (my_node is ok, but my node is not). This is also true for linking keys when linking Nodes
  • Param batched is not setable, now one must explicitly provide batch_shape
  • Param.to_pointer now requires that a value is passed (either param or callable)
  • Module no longer tracks dynamic_modules, child_dynamic_params, or all_dynamic_value
  • ActiveContext cannot be nested (not sure who was doing that anyway)
  • Node.active cannot be set by the user (I hope no one was doing this)

Full Changelog: v0.14.1...v0.15.0