# ragrad **Repository Path**: MoleSir/ragrad ## Basic Information - **Project Name**: ragrad - **Description**: Rust 实现自动求导以及简单的神经网络 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-20 - **Last Updated**: 2025-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: grad, Neural-network, PyTorch ## README # Rust Auto Grad 实现自动求道以及简单的神经网络 ## 下载 Clone 这个仓库到任意目录,进入目录执行: ````bash cargo build ```` 或在你希望运行所有的测试: ````bash cargo test ```` ## Code Example 对 `Var` 结构体实现自动求导: ````rust let a = Var::from(1.2); let b = Var::from(3.7); let y = &a * &b; y.backward(); assert_eq!(y.data(), 1.2 * 3.7); assert_eq!(a.gard(), 3.7); assert_eq!(b.gard(), 1.2); ```` 基于此,实现了一个简单的 MLP 模型,以及常用优化器她与损失函数。使用类似 PyTorch 的 API 风格训练网络: ````rust let mut mlp = MLP::new(vec![2, 4, 1], Activation::Tanh); let mut optimizer = Momentum::new(mlp.parameters(), 0.1, 0.1); let criterion = Loss::MSE; for _ in 0..10000 { for (xs, target) in train_xs.iter().zip(train_targets.iter()) { let pred = mlp.forward(xs); let loss = criterion.forward(&pred, &[target.clone()]); println!("loss: {}", loss.data()); optimizer.zero_grad(); loss.backward(); optimizer.step(); } } ```` ## License MIT ## References - https://github.com/karpathy/micrograd.git - https://github.com/shivance/picograd.git