misantamaria's picture
Update r_shiny_app/global.R
beb025c
raw
history blame
5.68 kB
# R dependencies
library(shiny)
library(shinyjs)
library(reticulate)
library(purrr)
library(jsonlite)
library(tibble)
library(ggplot2)
library(glue)
library(shinycssloaders)
library(tidyr)
library(data.table)
library(dplyr)
library(dygraphs)
library(shinyWidgets)
library(RColorBrewer)
library(pals)
library(stringr)
##################QUITAR CUANDO YA TIRE
library(reactlog)
library(feather)
library(arrow)
library(fasttime)
library(parallel)
#library(shinythemes)
library(xts)
reactlog::reactlog_enable()
#options(shiny.trace = TRUE, shiny.loglevel = "DEBUG", shiny.app_log_path = "app/shiny_logs_internal")
torch <- reticulate::import("torch")
#options(shiny.trace = TRUE)
if(torch$cuda$is_available()){
print(paste0("CUDA AVAILABLE. Num devices: ", torch$cuda$device_count()))
# print(paste0("current", torch$current_device()))
# fflush.console()
device=as.integer(0)
# print(paste0("Set up device ordinal "), device)
# fflush.console();
torch$cuda$set_device(device)
print(paste0("Device setted up"))
#torch$cuda$set_device(as.integer(1))
#torch$cuda$set_device(as.integer(2))
#print(torch$cuda$memory_summary())
print(Sys.getenv("PYTORCH_CUDA_ALLOC_CONF"))
} else {
print("CUDA NOT AVAILABLE")
}
#################QUITAR CUANDO YA TIRE
# Python dependencies
#tsai_data = import("tsai.data.all")
#wandb = import("wandb")
#pd = import("pandas")
#hdbscan = import("hdbscan")
#dvats = import_from_path("dvats.all", path=paste0(Sys.getenv("HOME")))
############Just in case. Trying to get why get_enc_embs gets freezed
# Python dependencies
print("--> py dependences | Tsai")
Sys.setenv(MPLCONFIGDIR = "/tmp/")
tsai_data = reticulate::import("tsai.data.all")
print("--> py dependences | Wandb")
wandb = reticulate::import("wandb")
print("--> py dependences | PANDAS")
pd = reticulate::import("pandas")
print("--> py dependences | Hdbscan")
hdbscan = reticulate::import("hdbscan")
print("--> py dependences | Dvats")
dvats = reticulate::import_from_path("dvats.all", path=paste0(Sys.getenv("HOME")))
print("--> py dependences -->")
print("--> py_config ")
print(reticulate::py_config())
print("py_config -->")
#############
# CONFIG #
#############
QUERY_RUNS_LIMIT = 1
DEFAULT_PATH_WANDB_ARTIFACTS = paste0(Sys.getenv("HOME"), "/data/wandb_artifacts")
hdbscan_metrics <- hdbscan$dist_metrics$METRIC_MAPPING
#hdbscan_metrics <- c('euclidean', 'l2', 'l1', 'manhattan', 'cityblock', 'braycurtis', 'canberra', 'chebyshev', 'correlation', 'cosine', 'dice', 'hamming', 'jaccard', 'kulsinski', 'mahalanobis', 'matching', 'minkowski', 'rogerstanimoto', 'russellrao', 'seuclidean', 'sokalmichener', 'sokalsneath', 'sqeuclidean', 'yule', 'wminkowski', 'nan_euclidean', 'haversine')
Sys.setenv("TZ"="UTC")
DEFAULT_VALUES = list(metric_hdbscan = "euclidean",
min_cluster_size_hdbscan = 100,
min_samples_hdbscan = 15,
cluster_selection_epsilon_hdbscan = 0.08,
path_line_size = 0.08,
path_alpha = 5/10,
point_alpha = 1/10,
point_size = 1)
WANDB_ENTITY = Sys.getenv("WANDB_ENTITY")
WANDB_PROJECT = Sys.getenv("WANDB_PROJECT")
WANDB_API_KEY = Sys.getenv("WANDB_API_KEY")
####################
# HELPER FUNCTIONS #
####################
get_window_indices = function(idxs, w, s) {
idxs %>% map(function (i) {
start_index = ((i-1)*s + 1)
return(start_index:(start_index+w-1))
})
}
dyUnzoom <-function(dygraph) {
dyPlugin(
dygraph = dygraph,
name = "Unzoom",
path = system.file("plugins/unzoom.js", package = "dygraphs")
)
}
vec_dyShading <- function(dyg, from, to, color, data_rownames) {
# assuming that from, to, and color have all same length
n <- length(from)
if (n == 0) return(dyg)
new_shades <- vector(mode = "list", length = n)
for (i in 1:n) {
new_shades[[i]] <- list(from = data_rownames[from[[i]]],
to = data_rownames[to[[i]]],
color = color,
axis = "x")
}
dyg$x$shadings <- c(dyg$x$shadings, new_shades)
dyg
}
# Not used yet (it is likely to be used in the future)
make_individual_dygraph <- function(i){
plt <- dygraph(tsdf()[i],height= "170",group = "timeseries", ylab = names(tsdf())[i],width="100%") %>%
dySeries(color=color_scale_dygraph[i]) %>%
dyHighlight(hideOnMouseOut = TRUE) %>%
dyOptions(labelsUTC = TRUE) %>%
dyLegend(show = "follow", hideOnMouseOut = TRUE) %>%
dyUnzoom() %>%
dyHighlight(highlightSeriesOpts = list(strokeWidth = 3)) %>%
dyCSS(
textConnection(
"
.dygraph-ylabel {font-size: 9px; width: 80%;text-align: center;float: right}
.dygraph-legend > span { display: none; }
.dygraph-legend > span.highlight { display: inline; }"
)
)
if(i==1){
plt <-plt %>%
dyRangeSelector(height = 20, strokeColor = "")
}
plt
}
###################################
# RETRIEVE WANDB RUNS & ARTIFACTS #
###################################
print(system('ls -la /home/app', intern=TRUE))
api <- wandb$Api()
print(system('ls -la /home/app', intern=TRUE))
print("Querying encoders")
encs_l <- dvats$get_wandb_artifacts(project_path = glue(WANDB_ENTITY, "/", WANDB_PROJECT),
type = "learner",
last_version=F) %>%
discard(~ is_empty(.$aliases) | is_empty(.$metadata$train_artifact))
encs_l <- encs_l %>% set_names(encs_l %>% map(~ glue(WANDB_ENTITY, "/", WANDB_PROJECT, "/", .$name)))
#discard(~ str_detect(.$name, "dcae"))
print("Done!")