pub struct Constrained<M, Man> { /* private fields */ }Implementations§
Source§impl<M, Man> Constrained<M, Man>
impl<M, Man> Constrained<M, Man>
pub fn new(module: M) -> Self
Sourcepub fn project_tensor<B, const D: usize>(
&self,
point: Tensor<B, D>,
vector: Tensor<B, D>,
) -> Tensor<B, D>
pub fn project_tensor<B, const D: usize>( &self, point: Tensor<B, D>, vector: Tensor<B, D>, ) -> Tensor<B, D>
Apply manifold projection to a tensor - requires explicit Backend type
Sourcepub fn retract_tensor<B, const D: usize>(
&self,
point: Tensor<B, D>,
direction: Tensor<B, D>,
) -> Tensor<B, D>
pub fn retract_tensor<B, const D: usize>( &self, point: Tensor<B, D>, direction: Tensor<B, D>, ) -> Tensor<B, D>
Apply manifold retraction to a tensor - requires explicit Backend type
Sourcepub fn euclidean_to_riemannian<B, const D: usize>(
&self,
point: Tensor<B, D>,
grad: Tensor<B, D>,
) -> Tensor<B, D>
pub fn euclidean_to_riemannian<B, const D: usize>( &self, point: Tensor<B, D>, grad: Tensor<B, D>, ) -> Tensor<B, D>
Convert Euclidean gradient to Riemannian gradient - requires explicit Backend type
Sourcepub fn project_to_manifold<B, const D: usize>(
&self,
point: Tensor<B, D>,
) -> Tensor<B, D>
pub fn project_to_manifold<B, const D: usize>( &self, point: Tensor<B, D>, ) -> Tensor<B, D>
Project point onto manifold - requires explicit Backend type
Sourcepub fn manifold_name<B>(&self) -> &'static str
pub fn manifold_name<B>(&self) -> &'static str
Get the manifold name
Trait Implementations§
Source§impl<B, M, Man> AutodiffModule<B> for Constrained<M, Man>
impl<B, M, Man> AutodiffModule<B> for Constrained<M, Man>
Source§type InnerModule = <M as AutodiffModule<B>>::InnerModule
type InnerModule = <M as AutodiffModule<B>>::InnerModule
Inner module without auto-differentiation.
Source§fn valid(&self) -> Self::InnerModule
fn valid(&self) -> Self::InnerModule
Get the same module, but on the inner backend without auto-differentiation.
Source§impl<M: Clone, Man: Clone> Clone for Constrained<M, Man>
impl<M: Clone, Man: Clone> Clone for Constrained<M, Man>
Source§fn clone(&self) -> Constrained<M, Man>
fn clone(&self) -> Constrained<M, Man>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<B, M, Man> ConstrainedModule<B> for Constrained<M, Man>
Blanket implementation for Constrained wrapper
impl<B, M, Man> ConstrainedModule<B> for Constrained<M, Man>
Blanket implementation for Constrained wrapper
Source§fn apply_manifold_constraints(self) -> Self
fn apply_manifold_constraints(self) -> Self
Apply manifold constraints to all parameters in the module
Source§fn get_manifold_info(&self) -> HashMap<String, String>
fn get_manifold_info(&self) -> HashMap<String, String>
Get information about the manifold constraints
Source§fn has_manifold_constraints(&self) -> bool
fn has_manifold_constraints(&self) -> bool
Check if this module has manifold constraints
Source§impl<B, M, Man> ManifoldOptimizable<B> for Constrained<M, Man>
impl<B, M, Man> ManifoldOptimizable<B> for Constrained<M, Man>
Source§fn apply_manifold_constraints(self) -> Self
fn apply_manifold_constraints(self) -> Self
Apply manifold constraints to the module
Source§impl<B, M, Man> Module<B> for Constrained<M, Man>
impl<B, M, Man> Module<B> for Constrained<M, Man>
Source§fn collect_devices(&self, devices: Devices<B>) -> Devices<B>
fn collect_devices(&self, devices: Devices<B>) -> Devices<B>
Return all the devices found in the underneath module tree added to the given vector
without duplicates.
Source§fn fork(self, device: &B::Device) -> Self
fn fork(self, device: &B::Device) -> Self
Fork the module and all of its sub-modules to the given device. Read more
Source§fn to_device(self, device: &B::Device) -> Self
fn to_device(self, device: &B::Device) -> Self
Move the module and all of its sub-modules to the given device. Read more
Source§fn visit<Visitor: ModuleVisitor<B>>(&self, visitor: &mut Visitor)
fn visit<Visitor: ModuleVisitor<B>>(&self, visitor: &mut Visitor)
Visit each tensor parameter in the module with a visitor.
Source§fn map<Mapper: ModuleMapper<B>>(self, mapper: &mut Mapper) -> Self
fn map<Mapper: ModuleMapper<B>>(self, mapper: &mut Mapper) -> Self
Map each tensor parameter in the module with a mapper.
Source§fn load_record(self, record: Self::Record) -> Self
fn load_record(self, record: Self::Record) -> Self
Load the module state from a record.
Source§fn into_record(self) -> Self::Record
fn into_record(self) -> Self::Record
Convert the module into a record containing the state.
Source§fn devices(&self) -> Vec<<B as Backend>::Device>
fn devices(&self) -> Vec<<B as Backend>::Device>
Return all the devices found in the underneath module tree without duplicates.
Source§fn num_params(&self) -> usize
fn num_params(&self) -> usize
Get the number of parameters the module has, including all of its sub-modules.
Source§fn save_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
) -> Result<(), RecorderError>
fn save_file<FR, PB>( self, file_path: PB, recorder: &FR, ) -> Result<(), RecorderError>
Save the module to a file using the provided file recorder. Read more
Source§fn load_file<FR, PB>(
self,
file_path: PB,
recorder: &FR,
device: &<B as Backend>::Device,
) -> Result<Self, RecorderError>
fn load_file<FR, PB>( self, file_path: PB, recorder: &FR, device: &<B as Backend>::Device, ) -> Result<Self, RecorderError>
Load the module from a file using the provided file recorder. Read more
Source§fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
fn quantize_weights(self, quantizer: &mut Quantizer) -> Self
Quantize the weights of the module.
Source§impl<M, Man> ModuleDisplay for Constrained<M, Man>
impl<M, Man> ModuleDisplay for Constrained<M, Man>
Source§fn format(&self, passed_settings: DisplaySettings) -> String
fn format(&self, passed_settings: DisplaySettings) -> String
Formats the module with provided display settings. Read more
Source§fn custom_settings(&self) -> Option<DisplaySettings>
fn custom_settings(&self) -> Option<DisplaySettings>
Custom display settings for the module. Read more
Source§impl<M, Man> ModuleDisplayDefault for Constrained<M, Man>
impl<M, Man> ModuleDisplayDefault for Constrained<M, Man>
Auto Trait Implementations§
impl<M, Man> Freeze for Constrained<M, Man>where
M: Freeze,
impl<M, Man> RefUnwindSafe for Constrained<M, Man>where
M: RefUnwindSafe,
Man: RefUnwindSafe,
impl<M, Man> Send for Constrained<M, Man>
impl<M, Man> Sync for Constrained<M, Man>
impl<M, Man> Unpin for Constrained<M, Man>
impl<M, Man> UnsafeUnpin for Constrained<M, Man>where
M: UnsafeUnpin,
impl<M, Man> UnwindSafe for Constrained<M, Man>where
M: UnwindSafe,
Man: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more