Files
foxhunt/crates/ml/examples/test_adamw_optimizer.rs
jgrusewski 9c3d741a08 refactor: restructure repo — crates/, bin/, testing/ layout
Move 17 library crates into crates/, CLI binary into bin/fxt,
consolidate 10 test crates into testing/, split config crate
from deployment config files.

Root directory reduced from 38+ to ~17 directories.
All Cargo.toml paths and build.rs proto refs updated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 11:56:00 +01:00

47 lines
1.6 KiB
Rust

//! Quick test to verify AdamW optimizer implementation
use ml::mamba::{Mamba2Config, OptimizerType};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("\n=== AdamW Optimizer Implementation Test ===\n");
// Test 1: AdamW variant exists
let adamw = OptimizerType::AdamW;
println!("✅ Test 1: OptimizerType::AdamW exists: {:?}", adamw);
// Test 2: AdamW is default
let config = Mamba2Config::default();
assert_eq!(
config.optimizer_type,
OptimizerType::AdamW,
"Default optimizer should be AdamW"
);
println!("✅ Test 2: Default optimizer is AdamW");
// Test 3: All optimizer types available
let adam = OptimizerType::Adam;
let sgd = OptimizerType::SGD;
println!("✅ Test 3: All optimizer types available:");
println!(" - Adam: {:?}", adam);
println!(" - AdamW: {:?} (default)", adamw);
println!(" - SGD: {:?}", sgd);
// Test 4: Config accepts AdamW
let mut config_adamw = Mamba2Config::default();
config_adamw.optimizer_type = OptimizerType::AdamW;
config_adamw.weight_decay = 0.01;
println!(
"✅ Test 4: Config accepts AdamW with weight_decay={:.3}",
config_adamw.weight_decay
);
println!("\n=== All AdamW Implementation Tests Passed! ===\n");
println!("Summary:");
println!(" - AdamW optimizer enum variant added");
println!(" - AdamW is now the default optimizer");
println!(" - Weight decay will be decoupled (applied to params, not gradients)");
println!(" - Expected benefit: 10-20% better generalization for SSMs");
Ok(())
}