pub trait DiffusionBackend: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn forward(&self, x: &[Vec<f64>], t: usize) -> Vec<Vec<f64>>;
fn reverse(&self, x_t: &[Vec<f64>], t: usize) -> Vec<Vec<f64>>;
fn generate(
&self,
n_samples: usize,
n_features: usize,
seed: u64,
) -> Vec<Vec<f64>>;
}Expand description
Diffusion model backend trait.
Required Methods§
Sourcefn forward(&self, x: &[Vec<f64>], t: usize) -> Vec<Vec<f64>>
fn forward(&self, x: &[Vec<f64>], t: usize) -> Vec<Vec<f64>>
Forward process: add noise at timestep t.