pub struct NeuralOptimizer {
pub network: OptimizerNetwork,
pub parameters: Vec<Tensor>,
pub meta_optimizer: Option<Box<dyn Optimizer>>,
pub training: bool,
pub step_count: usize,
}Expand description
Neural optimizer that uses a neural network to learn optimization updates
Fields§
§network: OptimizerNetworkNeural network for computing updates
parameters: Vec<Tensor>Parameters being optimized
meta_optimizer: Option<Box<dyn Optimizer>>Meta-optimizer for training the neural optimizer
training: boolTraining mode flag
step_count: usizeStep counter
Implementations§
Source§impl NeuralOptimizer
impl NeuralOptimizer
Sourcepub fn new(
parameters: Vec<Tensor>,
config: Option<NeuralOptimizerConfig>,
) -> OptimizerResult<Self>
pub fn new( parameters: Vec<Tensor>, config: Option<NeuralOptimizerConfig>, ) -> OptimizerResult<Self>
Create a new neural optimizer
Sourcepub fn with_meta_learning(
parameters: Vec<Tensor>,
config: Option<NeuralOptimizerConfig>,
) -> OptimizerResult<Self>
pub fn with_meta_learning( parameters: Vec<Tensor>, config: Option<NeuralOptimizerConfig>, ) -> OptimizerResult<Self>
Create a neural optimizer with meta-learning capabilities
Sourcepub fn compute_meta_loss(&self, target_loss: f32, actual_loss: f32) -> f32
pub fn compute_meta_loss(&self, target_loss: f32, actual_loss: f32) -> f32
Compute loss for meta-learning (simplified objective)
Sourcepub fn meta_step(&mut self, meta_loss: f32) -> OptimizerResult<()>
pub fn meta_step(&mut self, meta_loss: f32) -> OptimizerResult<()>
Update the neural network parameters using meta-gradients
Trait Implementations§
Source§impl Optimizer for NeuralOptimizer
impl Optimizer for NeuralOptimizer
Source§fn step(&mut self) -> OptimizerResult<()>
fn step(&mut self) -> OptimizerResult<()>
Perform a single optimization step
Source§fn state_dict(&self) -> OptimizerResult<OptimizerState>
fn state_dict(&self) -> OptimizerResult<OptimizerState>
Get state dict for serialization
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 load_state_dict(&mut self, state: OptimizerState) -> OptimizerResult<()>
fn load_state_dict(&mut self, state: OptimizerState) -> OptimizerResult<()>
Load state dict
Auto Trait Implementations§
impl !Freeze for NeuralOptimizer
impl !RefUnwindSafe for NeuralOptimizer
impl !Send for NeuralOptimizer
impl !Sync for NeuralOptimizer
impl !UnwindSafe for NeuralOptimizer
impl Unpin for NeuralOptimizer
impl UnsafeUnpin for NeuralOptimizer
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