pub struct AdvancedAdvancedDistributedOnlineGD<T: StreamingObjective> {
pub consensus_node: DistributedConsensusNode,
pub objective: T,
pub config: StreamingConfig,
pub stats: StreamingStats,
pub distributed_stats: DistributedOptimizationStats,
pub gradient_sum_sq: Array1<f64>,
pub momentum: Array1<f64>,
pub federated_state: FederatedAveragingState,
pub async_update_queue: VecDeque<DelayedUpdate>,
pub message_buffer: VecDeque<ConsensusMessage>,
pub sync_state: NetworkSynchronizationState,
}
Expand description
Advanced Distributed Online Gradient Descent
Fields§
§consensus_node: DistributedConsensusNode
Local consensus node
objective: T
Objective function
config: StreamingConfig
Configuration
stats: StreamingStats
Statistics
distributed_stats: DistributedOptimizationStats
Distributed statistics
gradient_sum_sq: Array1<f64>
Learning rate adaptation state
momentum: Array1<f64>
Momentum state
federated_state: FederatedAveragingState
Federated averaging state
async_update_queue: VecDeque<DelayedUpdate>
Asynchronous update queue
message_buffer: VecDeque<ConsensusMessage>
Communication buffer
sync_state: NetworkSynchronizationState
Network synchronization state
Implementations§
Source§impl<T: StreamingObjective + Clone> AdvancedAdvancedDistributedOnlineGD<T>
impl<T: StreamingObjective + Clone> AdvancedAdvancedDistributedOnlineGD<T>
Sourcepub fn new(
node_id: usize,
initial_parameters: Array1<f64>,
objective: T,
config: StreamingConfig,
num_nodes: usize,
) -> Self
pub fn new( node_id: usize, initial_parameters: Array1<f64>, objective: T, config: StreamingConfig, num_nodes: usize, ) -> Self
Create new advanced distributed online gradient descent
Sourcepub fn setup_network_topology(
&mut self,
peerconnections: &[(usize, usize, f64, f64)],
)
pub fn setup_network_topology( &mut self, peerconnections: &[(usize, usize, f64, f64)], )
Initialize network topology with peers
Sourcepub fn process_consensus_messages(&mut self) -> Result<(), OptimizeError>
pub fn process_consensus_messages(&mut self) -> Result<(), OptimizeError>
Process consensus messages from peers
Sourcepub fn run_consensus_protocol(
&mut self,
) -> Result<Option<Array1<f64>>, OptimizeError>
pub fn run_consensus_protocol( &mut self, ) -> Result<Option<Array1<f64>>, OptimizeError>
Run consensus protocol
Sourcepub fn federated_update(
&mut self,
gradient: &ArrayView1<'_, f64>,
) -> Result<(), OptimizeError>
pub fn federated_update( &mut self, gradient: &ArrayView1<'_, f64>, ) -> Result<(), OptimizeError>
Update with federated averaging
Sourcepub fn process_async_updates(&mut self) -> Result<(), OptimizeError>
pub fn process_async_updates(&mut self) -> Result<(), OptimizeError>
Process asynchronous updates
Trait Implementations§
Source§impl<T: Clone + StreamingObjective> Clone for AdvancedAdvancedDistributedOnlineGD<T>
impl<T: Clone + StreamingObjective> Clone for AdvancedAdvancedDistributedOnlineGD<T>
Source§fn clone(&self) -> AdvancedAdvancedDistributedOnlineGD<T>
fn clone(&self) -> AdvancedAdvancedDistributedOnlineGD<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<T: Debug + StreamingObjective> Debug for AdvancedAdvancedDistributedOnlineGD<T>
impl<T: Debug + StreamingObjective> Debug for AdvancedAdvancedDistributedOnlineGD<T>
Source§impl<T: StreamingObjective + Clone> StreamingOptimizer for AdvancedAdvancedDistributedOnlineGD<T>
impl<T: StreamingObjective + Clone> StreamingOptimizer for AdvancedAdvancedDistributedOnlineGD<T>
Source§fn update(
&mut self,
datapoint: &StreamingDataPoint,
) -> Result<(), OptimizeError>
fn update( &mut self, datapoint: &StreamingDataPoint, ) -> Result<(), OptimizeError>
Process a single data point and update parameters
Source§fn parameters(&self) -> &Array1<f64>
fn parameters(&self) -> &Array1<f64>
Get current parameter estimates
Source§fn stats(&self) -> &StreamingStats
fn stats(&self) -> &StreamingStats
Get current optimization statistics
Source§fn update_batch(
&mut self,
datapoints: &[StreamingDataPoint],
) -> Result<(), OptimizeError>
fn update_batch( &mut self, datapoints: &[StreamingDataPoint], ) -> Result<(), OptimizeError>
Process a batch of data points
Auto Trait Implementations§
impl<T> Freeze for AdvancedAdvancedDistributedOnlineGD<T>where
T: Freeze,
impl<T> RefUnwindSafe for AdvancedAdvancedDistributedOnlineGD<T>where
T: RefUnwindSafe,
impl<T> Send for AdvancedAdvancedDistributedOnlineGD<T>where
T: Send,
impl<T> Sync for AdvancedAdvancedDistributedOnlineGD<T>where
T: Sync,
impl<T> Unpin for AdvancedAdvancedDistributedOnlineGD<T>where
T: Unpin,
impl<T> UnwindSafe for AdvancedAdvancedDistributedOnlineGD<T>where
T: 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.