tl-lang 0.4.8

A differentiable programming language with tensor support for machine learning
// 最小再現: forループ2回の autograd
fn main() {
    let N = 4;
    let lr = 0.5;
    
    let mut board = Tensor::randn([N, N], true);
    
    for i in 0..3 {
        println("--- Epoch {} start ---", i);
        
        let probs = board.softmax(1);
        println("  softmax done");
        
        let loss = probs.sum();
        println("  sum done");
        
        loss.backward();
        println("  backward done");
        
        let g = board.grad();
        println("  grad done");
        
        board = board - g * lr;
        println("  update done");
        
        board = board.detach(false);
        println("  detach done");
        
        board.enable_grad();
        println("  enable_grad done");
        
        println("--- Epoch {} complete ---", i);
    }
    println("=== All epochs done ===");
}