| use star::language_model::{CharRNN, Vocabulary, generate::{self, GenerateConfig}}; |
|
|
| fn main() { |
| println!("Testing save/load cycle...\n"); |
|
|
| let vocab = Vocabulary::new(); |
| let config = star::language_model::model::ModelConfig::default(); |
|
|
| let mut model = CharRNN::new(config.clone()); |
| println!("Created model with {} parameters", model.num_params()); |
|
|
| let path = "data/test_model.bin"; |
| model.save(path).expect("Save failed"); |
| println!("Saved to {}", path); |
|
|
| let file_size = std::fs::metadata(path).expect("Failed to get metadata").len(); |
| println!("File size: {} bytes", file_size); |
|
|
| drop(model); |
|
|
| let loaded = CharRNN::load(path).expect("Load failed"); |
| println!("Loaded model with {} parameters", loaded.num_params()); |
|
|
| println!("\nGenerating from 'Hello':"); |
| let gen_config = GenerateConfig { |
| max_length: 50, |
| temperature: 1.0, |
| top_k: 0, |
| seed: Some(42), |
| }; |
| let mut loaded = loaded; |
| let result = generate::generate(&mut loaded, &vocab, "Hello", gen_config); |
| println!("Result: {}", result.trim()); |
|
|
| std::fs::remove_file(path).ok(); |
| println!("\nSave/load cycle works!"); |
| } |