use crate::neural::model::{composite::NeuralCompilerV2, vocab::Vocab};
use burn::prelude::*;
pub use trident::neural::training::gflownet::{
    compute_reward, compute_shaped_reward, tb_loss, temperature_at_step, GFlowNetConfig,
};
pub fn sample_sequence<B: Backend>(
    model: &NeuralCompilerV2<B>,
    graph: &crate::neural::data::tir_graph::TirGraph,
    tau: f32,
    config: &GFlowNetConfig,
    device: &B::Device,
) -> (Vec<u32>, f32, Option<usize>) {
    trident::neural::training::gflownet::sample_sequence(
        &crate::neural::target::TritonTarget::default(),
        model,
        graph,
        tau,
        config,
        device,
    )
}
pub fn gflownet_step<B: burn::tensor::backend::AutodiffBackend>(
    model: &NeuralCompilerV2<B>,
    graph: &crate::neural::data::tir_graph::TirGraph,
    baseline_tasm: &[String],
    compiler_cycles: u64,
    log_z: Tensor<B, 1>,
    step: usize,
    config: &GFlowNetConfig,
    vocab: &Vocab,
    device: &B::Device,
) -> (Tensor<B, 1>, f32, bool) {
    trident::neural::training::gflownet::gflownet_step(
        model,
        graph,
        baseline_tasm,
        compiler_cycles,
        log_z,
        step,
        config,
        &crate::neural::target::TritonTarget::with_vocabulary(vocab),
        device,
    )
}

Homonyms

neural/trident/src/neural/training/gflownet.rs

Graph