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

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]

`fn clone(&self) -> NeatEnvironment`

[src]

`fn clone_from(&mut self, source: &Self)`

1.0.0[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]

Dense: Layer,

`fn crossover(`

child: &Dense,

parent_two: &Dense,

env: &Arc<RwLock<NeatEnvironment>>,

crossover_rate: f32

) -> Option<Dense>

[src]

child: &Dense,

parent_two: &Dense,

env: &Arc<RwLock<NeatEnvironment>>,

crossover_rate: f32

) -> Option<Dense>

`fn distance(one: &Dense, two: &Dense, _: &Arc<RwLock<NeatEnvironment>>) -> f32`

[src]

`fn base(_: &mut E) -> T where`

T: Sized,

[src]

T: Sized,

`impl Genome<LSTM, NeatEnvironment> for LSTM where`

LSTM: Layer,

[src]

LSTM: Layer,

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]

child: &LSTM,

parent_two: &LSTM,

env: &Arc<RwLock<NeatEnvironment>>,

crossover_rate: f32

) -> Option<LSTM>

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

`fn base(_: &mut E) -> T where`

T: Sized,

[src]

T: Sized,

`impl Genome<Neat, NeatEnvironment> for Neat`

[src]

iplement genome for a neat network

`fn crossover(`

one: &Neat,

two: &Neat,

env: &Arc<RwLock<NeatEnvironment>>,

crossover_rate: f32

) -> Option<Neat>

[src]

one: &Neat,

two: &Neat,

env: &Arc<RwLock<NeatEnvironment>>,

crossover_rate: f32

) -> Option<Neat>

`fn base(env: &mut NeatEnvironment) -> Neat`

[src]

`fn distance(one: &Neat, two: &Neat, env: &Arc<RwLock<NeatEnvironment>>) -> f32`

[src]

`impl Send for NeatEnvironment`

[src]

`impl Sync for NeatEnvironment`

[src]

## Auto Trait Implementations

`impl RefUnwindSafe for NeatEnvironment`

`impl Unpin for NeatEnvironment`

`impl UnwindSafe for NeatEnvironment`

## Blanket Implementations

`impl<T> Any for T where`

T: 'static + ?Sized,

[src]

T: 'static + ?Sized,

`impl<T> Borrow<T> for T where`

T: ?Sized,

[src]

T: ?Sized,

`impl<T> BorrowMut<T> for T where`

T: ?Sized,

[src]

T: ?Sized,

`fn borrow_mut(&mut self) -> &mut T`

[src]

`impl<T> From<T> for T`

[src]

`impl<T, U> Into<U> for T where`

U: From<T>,

[src]

U: From<T>,

`impl<T> Same<T> for T`

`type Output = T`

Should always be `Self`

`impl<T> ToOwned for T where`

T: Clone,

[src]

T: Clone,

`type Owned = T`

The resulting type after obtaining ownership.

`fn to_owned(&self) -> T`

[src]

`fn clone_into(&self, target: &mut T)`

[src]

`impl<T, U> TryFrom<U> for T where`

U: Into<T>,

[src]

U: Into<T>,

`type Error = Infallible`

The type returned in the event of a conversion error.

`fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`

[src]

`impl<T, U> TryInto<U> for T where`

U: TryFrom<T>,

[src]

U: TryFrom<T>,

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

The type returned in the event of a conversion error.

`fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`

[src]

`impl<T> Type for T`

[src]

`const `**METATYPE**: MetaType

[src]

**METATYPE**: MetaType

`type Meta = Concrete`

Type of metadata for type.

`fn meta(self: *const T) -> <T as Type>::Meta`

[src]

`fn data(self: *const T) -> *const ()`

[src]

`fn data_mut(self: *mut T) -> *mut ()`

[src]

`fn dangling(_t: <T as Type>::Meta) -> NonNull<T>`

[src]

`fn fatten(thin: *mut (), _t: <T as Type>::Meta) -> *mut T`

[src]

`fn meta_type(self: *const Self) -> MetaType`

[src]

`impl<T> Type for T where`

T: ?Sized,

[src]

T: ?Sized,

`default fn meta(self: *const T) -> <T as Type>::Meta`

[src]

`default fn data(self: *const T) -> *const ()`

[src]

`default fn data_mut(self: *mut T) -> *mut ()`

[src]

`default fn dangling(t: <T as Type>::Meta) -> NonNull<T>`

[src]

`default fn fatten(thin: *mut (), t: <T as Type>::Meta) -> *mut T`

[src]

`const `**METATYPE**: MetaType

[src]

**METATYPE**: MetaType

`type Meta: 'static`

`fn meta_type(self: *const Self) -> MetaType`

[src]

`impl<V, T> VZip<V> for T where`

V: MultiLane<T>,

V: MultiLane<T>,