diff --git a/rslib/src/scheduler/fsrs/params.rs b/rslib/src/scheduler/fsrs/params.rs index 45ab0a3c0..b316b4313 100644 --- a/rslib/src/scheduler/fsrs/params.rs +++ b/rslib/src/scheduler/fsrs/params.rs @@ -150,7 +150,7 @@ impl Collection { } } - let log_loss = if health_check && *current_params != params { + let log_loss = if health_check { let fsrs = FSRS::new(None)?; fsrs.evaluate_with_time_series_splits(input, |_| true) .ok() diff --git a/ts/routes/deck-options/FsrsOptions.svelte b/ts/routes/deck-options/FsrsOptions.svelte index 3a0b7c5e1..17ad230a3 100644 --- a/ts/routes/deck-options/FsrsOptions.svelte +++ b/ts/routes/deck-options/FsrsOptions.svelte @@ -189,18 +189,23 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html )) || resp.params.length === 0; - if (already_optimal) { + const highLogLoss = + resp.logLoss && resp.logLoss > logLossBadThreshold; + + if (resp.logLoss) { + console.log(`FSRS-test-train-split-log-loss = ${resp.logLoss}`); + } + if (highLogLoss) { + setTimeout(() => alert(tr.deckConfigFsrsBadFitWarning())); + } else if (already_optimal) { const msg = resp.fsrsItems ? tr.deckConfigFsrsParamsOptimal() : tr.deckConfigFsrsParamsNoReviews(); setTimeout(() => alert(msg), 200); - } else { + } + if (!already_optimal) { $config.fsrsParams6 = resp.params; optimized = true; - console.log(`FSRS-test-train-split-log-loss = ${resp.logLoss}`); - if (resp.logLoss && resp.logLoss > logLossBadThreshold) { - setTimeout(() => alert(tr.deckConfigFsrsBadFitWarning())); - } } if (computeParamsProgress) { computeParamsProgress.current = computeParamsProgress.total; @@ -330,7 +335,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html {/if} {#if false}