[][src]Struct radiate::models::neat::neatenv::NeatEnvironment

pub struct NeatEnvironment {
    pub weight_mutate_rate: Option<f32>,
    pub weight_perturb: Option<f32>,
    pub new_node_rate: Option<f32>,
    pub new_edge_rate: Option<f32>,
    pub edit_weights: Option<f32>,
    pub reactivate: Option<f32>,
    pub input_size: Option<u32>,
    pub output_size: Option<u32>,
    pub activation_functions: Vec<Activation>,
}

Configuation settings for the NeatAlgorithm

weight_mutate_rate: the probability of uniformly perturbing a connection weight or assigning a new random value weight_perturb: the uniform range to perturb a weight by will go from negative num to pos (if you enter 5, it will pertub a weight randomly between -5 and 5) new_node_rate: the probability of adding a new node to the network new_edge_rate: the probability of adding a new edge to the network edit_weights: the probability of weights in the network being edited or just left alone reactivate: the probability of reactivating a connection between two neurons

Fields

weight_mutate_rate: Option<f32>weight_perturb: Option<f32>new_node_rate: Option<f32>new_edge_rate: Option<f32>edit_weights: Option<f32>reactivate: Option<f32>input_size: Option<u32>output_size: Option<u32>activation_functions: Vec<Activation>

Methods

impl NeatEnvironment[src]

pub fn new() -> Self[src]

pub fn set_weight_mutate_rate(self, num: f32) -> Self[src]

pub fn set_weight_perturb(self, num: f32) -> Self[src]

pub fn set_new_node_rate(self, num: f32) -> Self[src]

pub fn set_new_edge_rate(self, num: f32) -> Self[src]

pub fn set_edit_weights(self, num: f32) -> Self[src]

pub fn set_reactivate(self, num: f32) -> Self[src]

pub fn set_input_size(self, num: u32) -> Self[src]

pub fn set_output_size(self, num: u32) -> Self[src]

pub fn set_activation_functions(self, funcs: Vec<Activation>) -> Self[src]

Trait Implementations

impl Clone for NeatEnvironment[src]

impl Debug for NeatEnvironment[src]

impl Default for NeatEnvironment[src]

impl Envionment for NeatEnvironment[src]

impl Genome<Dense, NeatEnvironment> for Dense where
    Dense: Layer
[src]

impl Genome<LSTM, NeatEnvironment> for LSTM where
    LSTM: Layer
[src]

in order for the lstm layer to be evolved along with the rest of the network, Genome must be implemented so that the layer can be crossed over and measured along with other lstm layers

fn crossover(
    child: &LSTM,
    parent_two: &LSTM,
    env: &Arc<RwLock<NeatEnvironment>>,
    crossover_rate: f32
) -> Option<LSTM>
[src]

implement how to crossover two LSTM layers

fn distance(one: &LSTM, two: &LSTM, env: &Arc<RwLock<NeatEnvironment>>) -> f32[src]

get the distance between two LSTM layers of the network

impl Genome<Neat, NeatEnvironment> for Neat[src]

iplement genome for a neat network

impl Send for NeatEnvironment[src]

impl Sync for NeatEnvironment[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Type for T[src]

type Meta = Concrete

Type of metadata for type.

impl<T> Type for T where
    T: ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,