Descriptors¶
- class erbs.descriptor.example_descriptor.RBFDescriptorFlax(displacement_fn: Callable = <function free.<locals>.displacement_fn at 0x7a52b18559e0>, n_basis: int = 5, r_min: float = 0.5, r_max: float = 6.0, dtype: Any = <class 'jax.numpy.float32'>, parent: Union[flax.linen.module.Module, flax.core.scope.Scope, flax.linen.module._Sentinel, NoneType]=<flax.linen.module._Sentinel object at 0x7a52b29009e0>, name: str | None = None)[source]¶
- dtype¶
alias of
float32
- setup()[source]¶
Initializes a Module lazily (similar to a lazy
__init__).setupis called once lazily on a module instance when a module is bound, immediately before any other methods like__call__are invoked, or before asetup-defined attribute onselfis accessed.This can happen in three cases:
Immediately when invoking
apply(),init()orinit_and_output().Once the module is given a name by being assigned to an attribute of another module inside the other module’s
setupmethod (see__setattr__()):>>> class MyModule(nn.Module): ... def setup(self): ... submodule = nn.Conv(...) ... # Accessing `submodule` attributes does not yet work here. ... # The following line invokes `self.__setattr__`, which gives ... # `submodule` the name "conv1". ... self.conv1 = submodule ... # Accessing `submodule` attributes or methods is now safe and ... # either causes setup() to be called once.
Once a module is constructed inside a method wrapped with
compact(), immediately before another method is called orsetupdefined attribute is accessed.