Struct cerebral::selforganizing::SelforganizingNetwork
source · pub struct SelforganizingNetwork<A, T, R, L>where
A: Adaptable<NeuralLayer, R>,
T: Topological<NeuralLayer>,
R: Responsive<NeuralLayer>,
L: Trainable<NeuralLayer, A, R>,{
pub neurons: NeuralLayer,
pub adaptivity: A,
pub topology: T,
pub responsiveness: R,
pub training: L,
}
Expand description
Struct that implements structural composition
Fields§
§neurons: NeuralLayer
needs to be nested to share it with the algorithms
adaptivity: A
Algorithm for adaptivity
topology: T
Algorithm related to topology
responsiveness: R
Algorithm to feature pattern matching and lateral inhibition
training: L
Algorithm related to batch processing
Trait Implementations§
source§impl<A, T, R, B> Neural for SelforganizingNetwork<A, T, R, B>where
A: Adaptable<NeuralLayer, R>,
T: Topological<NeuralLayer>,
R: Responsive<NeuralLayer>,
B: Trainable<NeuralLayer, A, R>,
impl<A, T, R, B> Neural for SelforganizingNetwork<A, T, R, B>where A: Adaptable<NeuralLayer, R>, T: Topological<NeuralLayer>, R: Responsive<NeuralLayer>, B: Trainable<NeuralLayer, A, R>,
fn get_lateral(&self) -> &Array2<f64>
fn get_lateral_mut(&mut self) -> &mut Array2<f64>
fn set_lateral(&mut self, lateral: Array2<f64>)
fn get_patterns(&self) -> &Array2<f64>
fn get_patterns_mut(&mut self) -> &mut Array2<f64>
fn set_patterns(&mut self, patterns: Array2<f64>)
source§impl<A, T, R, B> Selforganizing for SelforganizingNetwork<A, T, R, B>where
A: Adaptable<NeuralLayer, R>,
T: Topological<NeuralLayer>,
R: Responsive<NeuralLayer>,
B: Trainable<NeuralLayer, A, R>,
impl<A, T, R, B> Selforganizing for SelforganizingNetwork<A, T, R, B>where A: Adaptable<NeuralLayer, R>, T: Topological<NeuralLayer>, R: Responsive<NeuralLayer>, B: Trainable<NeuralLayer, A, R>,
source§fn init_lateral(&mut self)
fn init_lateral(&mut self)
Init the lateral connections according to network type
source§fn get_lateral_distance(&mut self, index: usize) -> Array2<f64>
fn get_lateral_distance(&mut self, index: usize) -> Array2<f64>
Get the distance/connection between a selected neuron
and the rest of the layer
source§fn get_best_matching(&mut self, pattern: &ArrayView1<'_, f64>) -> usize
fn get_best_matching(&mut self, pattern: &ArrayView1<'_, f64>) -> usize
Get the best matching neuron given a pattern
source§fn adapt(&mut self, pattern: &ArrayView1<'_, f64>, influence: f64, rate: f64)
fn adapt(&mut self, pattern: &ArrayView1<'_, f64>, influence: f64, rate: f64)
Adapt the layer to an input pattern. Note this consumes
the current later and returns a new created (zero-copy)
fn train(&mut self, patterns: &ArrayView2<'_, f64>)
Auto Trait Implementations§
impl<A, T, R, L> RefUnwindSafe for SelforganizingNetwork<A, T, R, L>where A: RefUnwindSafe, L: RefUnwindSafe, R: RefUnwindSafe, T: RefUnwindSafe,
impl<A, T, R, L> Send for SelforganizingNetwork<A, T, R, L>where A: Send, L: Send, R: Send, T: Send,
impl<A, T, R, L> Sync for SelforganizingNetwork<A, T, R, L>where A: Sync, L: Sync, R: Sync, T: Sync,
impl<A, T, R, L> Unpin for SelforganizingNetwork<A, T, R, L>where A: Unpin, L: Unpin, R: Unpin, T: Unpin,
impl<A, T, R, L> UnwindSafe for SelforganizingNetwork<A, T, R, L>where A: UnwindSafe, L: UnwindSafe, R: UnwindSafe, 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