pub trait ModuleMapper<B: Backend> {
// Provided methods
fn enter_module(&mut self, name: &str, container_type: &str) { ... }
fn exit_module(&mut self, name: &str, container_type: &str) { ... }
fn map_float<const D: usize>(
&mut self,
param: Param<Tensor<B, D>>,
) -> Param<Tensor<B, D>> { ... }
fn map_int<const D: usize>(
&mut self,
param: Param<Tensor<B, D, Int>>,
) -> Param<Tensor<B, D, Int>> { ... }
fn map_bool<const D: usize>(
&mut self,
param: Param<Tensor<B, D, Bool>>,
) -> Param<Tensor<B, D, Bool>> { ... }
}Expand description
Module mapper trait for transforming module parameters.
Provided Methods§
Sourcefn enter_module(&mut self, name: &str, container_type: &str)
fn enter_module(&mut self, name: &str, container_type: &str)
Called when entering a submodule.
§Parameters
name: The name of the submodule being enteredcontainer_type: The type of the container with format:- For user-defined structs: “Struct:TypeName” (e.g., “Struct:Linear”)
- For user-defined enums: “Enum:TypeName” (e.g., “Enum:MyEnum”)
- For Vec containers: “Vec” (name is the index)
- For Tuple containers: “Tuple” (name is the index)
- For Array containers: “Array” (name is the index)
Note: Option containers do not call enter_module/exit_module to preserve the field name in the path (e.g., “bias” instead of “bias.Some”)
Sourcefn exit_module(&mut self, name: &str, container_type: &str)
fn exit_module(&mut self, name: &str, container_type: &str)
Called when exiting a submodule.
§Parameters
name: The name of the submodule being exitedcontainer_type: The type of the container with format:- For user-defined structs: “Struct:TypeName” (e.g., “Struct:Linear”)
- For user-defined enums: “Enum:TypeName” (e.g., “Enum:MyEnum”)
- For Vec containers: “Vec” (name is the index)
- For Tuple containers: “Tuple” (name is the index)
- For Array containers: “Array” (name is the index)
Note: Option containers do not call enter_module/exit_module to preserve the field name in the path (e.g., “bias” instead of “bias.Some”)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl<B: Backend> ModuleMapper<B> for Quantizer
impl<B: Backend> ModuleMapper<B> for Reinitializer<B>
Available on crate feature
std only.