pub struct AnnealingSchedule { /* private fields */ }Expand description
Annealing schedule for training
Implementations§
Source§impl AnnealingSchedule
impl AnnealingSchedule
Sourcepub fn new(initial_temp: f64, final_temp: f64, num_steps: usize) -> Self
pub fn new(initial_temp: f64, final_temp: f64, num_steps: usize) -> Self
Create a new annealing schedule
Examples found in repository?
examples/quantum_boltzmann.rs (line 86)
84fn rbm_demo() -> Result<()> {
85 // Create RBM with annealing
86 let annealing = AnnealingSchedule::new(2.0, 0.5, 100);
87
88 let mut rbm = QuantumRBM::new(
89 6, // visible units
90 3, // hidden units
91 2.0, // initial temperature
92 0.01, // learning rate
93 )?
94 .with_annealing(annealing);
95
96 println!(" Created Quantum RBM with annealing schedule");
97
98 // Generate correlated binary data
99 let data = generate_correlated_data(200, 6);
100
101 // Train with PCD
102 println!(" Training with Persistent Contrastive Divergence...");
103 let losses = rbm.train_pcd(
104 &data, 100, // epochs
105 20, // batch size
106 50, // persistent chains
107 )?;
108
109 // Analyze training
110 let improvement = (losses[0] - losses.last().unwrap()) / losses[0] * 100.0;
111 println!(" Training statistics:");
112 println!(" - Loss reduction: {improvement:.1}%");
113 println!(" - Final temperature: 0.5");
114
115 // Test reconstruction
116 let test_data = data.slice(s![0..5, ..]).to_owned();
117 let reconstructed = rbm.qbm().reconstruct(&test_data)?;
118
119 println!("\n Reconstruction quality:");
120 for i in 0..3 {
121 print!(" Original: [");
122 for val in test_data.row(i) {
123 print!("{val:.0} ");
124 }
125 print!("] → Reconstructed: [");
126 for val in reconstructed.row(i) {
127 print!("{val:.0} ");
128 }
129 println!("]");
130 }
131
132 Ok(())
133}Trait Implementations§
Source§impl Clone for AnnealingSchedule
impl Clone for AnnealingSchedule
Source§fn clone(&self) -> AnnealingSchedule
fn clone(&self) -> AnnealingSchedule
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 moreAuto Trait Implementations§
impl Freeze for AnnealingSchedule
impl RefUnwindSafe for AnnealingSchedule
impl Send for AnnealingSchedule
impl Sync for AnnealingSchedule
impl Unpin for AnnealingSchedule
impl UnwindSafe for AnnealingSchedule
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.