diff --git a/bot/src/burnrl/dqn_model.rs b/bot/src/burnrl/dqn_model.rs index 221b391..5ceccaf 100644 --- a/bot/src/burnrl/dqn_model.rs +++ b/bot/src/burnrl/dqn_model.rs @@ -9,6 +9,7 @@ use burn::tensor::Tensor; use burn_rl::agent::DQN; use burn_rl::agent::{DQNModel, DQNTrainingConfig}; use burn_rl::base::{Action, Agent, ElemType, Environment, Memory, Model, State}; +use std::time::{Duration, SystemTime}; #[derive(Module, Debug)] pub struct Net { @@ -99,6 +100,7 @@ pub fn run( let mut episode_reward: ElemType = 0.0; let mut episode_duration = 0_usize; let mut state = env.state(); + let mut now = SystemTime::now(); while !episode_done { let eps_threshold = @@ -131,9 +133,13 @@ pub fn run( episode_done = true; println!( - "{{\"episode\": {}, \"reward\": {:.4}, \"duration\": {}}}", - episode, episode_reward, episode_duration + "{{\"episode\": {}, \"reward\": {:.4}, \"steps count\": {}, \"duration\": {}}}", + episode, + episode_reward, + episode_duration, + now.elapsed().unwrap().as_secs() ); + now = SystemTime::now(); } else { state = *snapshot.state(); } diff --git a/doc/backlog.md b/doc/backlog.md index f41b9b7..a1f7079 100644 --- a/doc/backlog.md +++ b/doc/backlog.md @@ -4,6 +4,12 @@ ## TODO +- stack overflow + + - https://crates.io/crates/backtrace-on-stack-overflow + - https://users.rust-lang.org/t/how-to-diagnose-a-stack-overflow-issues-cause/17320/11 + - https://www.reddit.com/r/rust/comments/1d8lxtd/debugging_stack_overflows/ + - bot burn - train = `just trainbot` - durée d'entrainement selon params ? diff --git a/doc/refs/geminiQuestions.md b/doc/refs/geminiQuestions.md index 0cbb0ce..46c33d8 100644 --- a/doc/refs/geminiQuestions.md +++ b/doc/refs/geminiQuestions.md @@ -43,4 +43,4 @@ fatal runtime error: stack overflow error: Recipe `trainbot` was terminated on line 25 by signal 6 ``` -Au bout du 12ème épisode (plus de 6 heures sur ma machine), l'entraînement s'arrête avec une erreur stack overlow. Peux-tu m'aider à diagnostiquer d'où peut provenir le problème ? Y a-t-il des outils qui permettent de détecter les zones de code qui utilisent le plus la stack ? Pour information j'ai vu ce rapport de bug https://github.com/yunjhongwu/burn-rl-examples/issues/40, donc peut-être que le problème vient du paquet 'burl-rl'. +Au bout du 12ème épisode (plus de 6 heures sur ma machine), l'entraînement s'arrête avec une erreur stack overlow. Peux-tu m'aider à diagnostiquer d'où peut provenir le problème ? Y a-t-il des outils qui permettent de détecter les zones de code qui utilisent le plus la stack ? Pour information j'ai vu ce rapport de bug , donc peut-être que le problème vient du paquet 'burl-rl'.