From 300e83ef6a7f2da9fca6e0d87a387aeee2cd6392 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Mon, 22 Mar 2021 17:54:01 +0100 Subject: Add debugging information --- R/strats.R | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/R/strats.R b/R/strats.R index 3b22d5c..0f55814 100644 --- a/R/strats.R +++ b/R/strats.R @@ -191,6 +191,7 @@ line_search_w <- function (T_normal, T, alpha, beta, gamma, dependency, W, R, gW if (armijo (T_normal, T, alpha, beta, gamma, dependency, W, R, gW, gR, step, 0, loss_value)) { step } else { + cat (sprintf ("%g is not sufficient for step_w.\n", step), file = stderr ()) line_search_w (T_normal, T, alpha, beta, gamma, dependency, W, R, gW, gR, step / 2, loss_value) } } @@ -199,6 +200,7 @@ line_search_r <- function (T_normal, T, alpha, beta, gamma, dependency, W, R, gW if (armijo (T_normal, T, alpha, beta, gamma, dependency, W, R, gW, gR, 0, step, loss_value)) { step } else { + cat (sprintf ("%g is not sufficient for step_r.\n", step), file = stderr ()) line_search_r (T_normal, T, alpha, beta, gamma, dependency, W, R, gW, gR, step / 2, loss_value) } } @@ -229,12 +231,14 @@ strats_iteration <- function (T_normal, T, alpha, beta, gamma, dependency, gW <- strats_gradient_w (T_normal, T, alpha, beta, gamma, dependency, W, R) gR <- matrix (0, nrow (T), ncol (T)) step_w <- line_search_w (T_normal, T, alpha, beta, gamma, dependency, W, R, gW, gR, step_w, loss_value) + cat (sprintf ("Using step W: %g\n", step_w), file = stderr ()) W <- W - step_w * gW loss_value <- strats_loss (T_normal, T, alpha, beta, gamma, dependency, W, R) ## Optimize R: gW <- matrix (0, nrow (T_normal), nrow (T)) gR <- strats_gradient_r (T_normal, T, alpha, beta, gamma, dependency, W, R) step_r <- line_search_r (T_normal, T, alpha, beta, gamma, dependency, W, R, gW, gR, step_r, loss_value) + cat (sprintf ("Using step R: %g\n", step_r), file = stderr ()) R <- R - step_r * gR loss_value <- strats_loss (T_normal, T, alpha, beta, gamma, dependency, W, R) list (loss_value = loss_value, @@ -296,6 +300,8 @@ strats <- function (T, alpha, beta, gamma, dependency, model <- strats_iteration (T_normal, T, alpha, beta, gamma, dependency, model$loss_value, model$W, model$R, model$step_w, model$step_r) + cat (sprintf ("New model with loss value: %g.\n", model$loss_value), + file = stderr ()) if (!is.null (last_loss)) { stopifnot (model$loss_value <= last_loss) } @@ -340,6 +346,9 @@ strats_test <- function (T, alpha, beta, gamma, dependency, model <- strats (T, alpha, beta, gamma, dependency, T_normal = T_normal, n_normal = n_normal, maxiter = maxiter) + cat (sprintf ("WTF?? %s\n", + paste (colnames (model$anomalies), collapse = "\n")), + file = stderr ()) (model$anomalies %>% dplyr::filter (observation == i_anomaly))$rank[1] })) @@ -371,6 +380,9 @@ strats_tune <- function (T, dependency, T_normal = T_normal, n_normal = n_normal, maxiter = maxiter) + cat (sprintf ("Alpha: %g, beta: %g, gamma: %g, error: %g\n", + alpha, beta, gamma, error), + file = stderr ()) tibble::tibble (alpha = alpha, beta = beta, gamma = gamma, error = error) })) -- cgit v1.2.3