Skip to main content

DiffusionBackend

Trait DiffusionBackend 

Source
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§

Source

fn name(&self) -> &str

Backend name.

Source

fn forward(&self, x: &[Vec<f64>], t: usize) -> Vec<Vec<f64>>

Forward process: add noise at timestep t.

Source

fn reverse(&self, x_t: &[Vec<f64>], t: usize) -> Vec<Vec<f64>>

Reverse process: denoise at timestep t.

Source

fn generate( &self, n_samples: usize, n_features: usize, seed: u64, ) -> Vec<Vec<f64>>

Generate n_samples with n_features from noise.

Implementors§