src/pdps.rs

branch
dev
changeset 39
6316d68b58af
parent 37
c5d8bd1a7728
equal deleted inserted replaced
37:c5d8bd1a7728 39:6316d68b58af
78 use crate::dataterm::{ 78 use crate::dataterm::{
79 DataTerm, 79 DataTerm,
80 L2Squared, 80 L2Squared,
81 L1 81 L1
82 }; 82 };
83 use crate::measures::merging::SpikeMergingMethod;
84
83 85
84 /// Acceleration 86 /// Acceleration
85 #[derive(Clone, Copy, Eq, PartialEq, Serialize, Deserialize, ValueEnum, Debug)] 87 #[derive(Clone, Copy, Eq, PartialEq, Serialize, Deserialize, ValueEnum, Debug)]
86 pub enum Acceleration { 88 pub enum Acceleration {
87 /// No acceleration 89 /// No acceleration
133 } 135 }
134 136
135 #[replace_float_literals(F::cast_from(literal))] 137 #[replace_float_literals(F::cast_from(literal))]
136 impl<F : Float> Default for PDPSConfig<F> { 138 impl<F : Float> Default for PDPSConfig<F> {
137 fn default() -> Self { 139 fn default() -> Self {
138 let τ0 = 0.5; 140 let τ0 = 5.0;
139 PDPSConfig { 141 PDPSConfig {
140 τ0, 142 τ0,
141 σ0 : 0.99/τ0, 143 σ0 : 0.99/τ0,
142 acceleration : Acceleration::Partial, 144 acceleration : Acceleration::Partial,
143 generic : Default::default(), 145 generic : FBGenericConfig {
146 merging : SpikeMergingMethod { enabled : true, ..Default::default() },
147 .. Default::default()
148 },
144 } 149 }
145 } 150 }
146 } 151 }
147 152
148 /// Trait for data terms for the PDPS 153 /// Trait for data terms for the PDPS
283 config, &reg, &state, &mut stats 288 config, &reg, &state, &mut stats
284 ); 289 );
285 290
286 // Prune and possibly merge spikes 291 // Prune and possibly merge spikes
287 if config.merge_now(&state) { 292 if config.merge_now(&state) {
288 stats.merged += prox_penalty.merge_spikes(&mut μ, &mut τv, &μ_base, τ, ε, config, &reg); 293 stats.merged += prox_penalty.merge_spikes_no_fitness(
294 &mut μ, &mut τv, &μ_base, None, τ, ε, config, &reg,
295 );
289 } 296 }
290 stats.pruned += prune_with_stats(&mut μ); 297 stats.pruned += prune_with_stats(&mut μ);
291 298
292 // Update step length parameters 299 // Update step length parameters
293 let ω = pdpsconfig.acceleration.accelerate(&mut τ, &mut σ, γ); 300 let ω = pdpsconfig.acceleration.accelerate(&mut τ, &mut σ, γ);

mercurial