pub struct MASOptimizer<O: Optimizer> { /* private fields */ }Expand description
Memory Aware Synapses optimizer
Estimates parameter importance using gradient magnitude at optimal parameters, avoiding the need for data from previous tasks.
Implementations§
Source§impl<O: Optimizer> MASOptimizer<O>
impl<O: Optimizer> MASOptimizer<O>
Sourcepub fn new(
base_optimizer: O,
params: Vec<Arc<RwLock<Tensor>>>,
config: MASConfig,
) -> OptimizerResult<Self>
pub fn new( base_optimizer: O, params: Vec<Arc<RwLock<Tensor>>>, config: MASConfig, ) -> OptimizerResult<Self>
Create a new MAS optimizer
Sourcepub fn with_defaults(
base_optimizer: O,
params: Vec<Arc<RwLock<Tensor>>>,
) -> OptimizerResult<Self>
pub fn with_defaults( base_optimizer: O, params: Vec<Arc<RwLock<Tensor>>>, ) -> OptimizerResult<Self>
Create with default configuration
Sourcepub fn compute_importance(&mut self) -> OptimizerResult<()>
pub fn compute_importance(&mut self) -> OptimizerResult<()>
Compute importance using output gradient magnitude
Sourcepub fn consolidate_task(&mut self) -> OptimizerResult<()>
pub fn consolidate_task(&mut self) -> OptimizerResult<()>
Consolidate task (save optimal parameters)
Trait Implementations§
Source§impl<O: Optimizer> Optimizer for MASOptimizer<O>
impl<O: Optimizer> Optimizer for MASOptimizer<O>
Source§fn step(&mut self) -> OptimizerResult<()>
fn step(&mut self) -> OptimizerResult<()>
Perform a single optimization step
Source§fn add_param_group(
&mut self,
params: Vec<Arc<RwLock<Tensor>>>,
options: HashMap<String, f32>,
)
fn add_param_group( &mut self, params: Vec<Arc<RwLock<Tensor>>>, options: HashMap<String, f32>, )
Add a parameter group
Source§fn parameters(&self) -> Vec<Arc<RwLock<Tensor>>>
fn parameters(&self) -> Vec<Arc<RwLock<Tensor>>>
Get the parameter tensors managed by this optimizer. Read more
Source§fn state_dict(&self) -> OptimizerResult<OptimizerState>
fn state_dict(&self) -> OptimizerResult<OptimizerState>
Get state dict for serialization
Source§fn load_state_dict(&mut self, state: OptimizerState) -> OptimizerResult<()>
fn load_state_dict(&mut self, state: OptimizerState) -> OptimizerResult<()>
Load state dict
Auto Trait Implementations§
impl<O> !RefUnwindSafe for MASOptimizer<O>
impl<O> !UnwindSafe for MASOptimizer<O>
impl<O> Freeze for MASOptimizer<O>where
O: Freeze,
impl<O> Send for MASOptimizer<O>where
O: Send,
impl<O> Sync for MASOptimizer<O>where
O: Sync,
impl<O> Unpin for MASOptimizer<O>where
O: Unpin,
impl<O> UnsafeUnpin for MASOptimizer<O>where
O: UnsafeUnpin,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 moreSource§impl<O> OptimizerExt for Owhere
O: Optimizer,
impl<O> OptimizerExt for Owhere
O: Optimizer,
Source§fn distributed(
self,
config: DistributedConfig,
) -> OptimizerResult<DistributedOptimizer<Self>>
fn distributed( self, config: DistributedConfig, ) -> OptimizerResult<DistributedOptimizer<Self>>
Wrap this optimizer with distributed functionality