ModuleMapper

Trait ModuleMapper 

Source
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§

Source

fn enter_module(&mut self, name: &str, container_type: &str)

Called when entering a submodule.

§Parameters
  • name: The name of the submodule being entered
  • container_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”)

Source

fn exit_module(&mut self, name: &str, container_type: &str)

Called when exiting a submodule.

§Parameters
  • name: The name of the submodule being exited
  • container_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”)

Source

fn map_float<const D: usize>( &mut self, param: Param<Tensor<B, D>>, ) -> Param<Tensor<B, D>>

Map a float parameter in the module.

§Parameters
  • param: The float parameter to transform
§Returns

The transformed parameter

Source

fn map_int<const D: usize>( &mut self, param: Param<Tensor<B, D, Int>>, ) -> Param<Tensor<B, D, Int>>

Map an int parameter in the module.

§Parameters
  • param: The integer parameter to transform
§Returns

The transformed parameter

Source

fn map_bool<const D: usize>( &mut self, param: Param<Tensor<B, D, Bool>>, ) -> Param<Tensor<B, D, Bool>>

Map a bool parameter in the module.

§Parameters
  • param: The boolean parameter to transform
§Returns

The transformed parameter

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§

Source§

impl<B: Backend> ModuleMapper<B> for Quantizer

Source§

impl<B: Backend> ModuleMapper<B> for Reinitializer<B>

Available on crate feature std only.