Skip to content

Parralel processing fails with function \"all_nominal\" (related to to issue #159) #160

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
kelseygonzalez opened this issue Jan 28, 2020 · 2 comments

Comments

@kelseygonzalez
Copy link
Contributor

Issued discovered during the Applied machine learning workshop. Related to issue #159 .
suggested to submit issue from @jyuu .

library(tidymodels)
#> Registered S3 method overwritten by 'xts':
#>   method     from
#>   as.zoo.xts zoo
#> -- Attaching packages ----------------------------------------------------------- tidymodels 0.0.3 --
#> v broom     0.5.3     v purrr     0.3.3
#> v dials     0.0.4     v recipes   0.1.9
#> v dplyr     0.8.3     v rsample   0.0.5
#> v ggplot2   3.2.1     v tibble    2.1.3
#> v infer     0.5.1     v yardstick 0.0.4
#> v parsnip   0.0.5
#> -- Conflicts -------------------------------------------------------------- tidymodels_conflicts() --
#> x purrr::discard()    masks scales::discard()
#> x dplyr::filter()     masks stats::filter()
#> x dplyr::lag()        masks stats::lag()
#> x ggplot2::margin()   masks dials::margin()
#> x recipes::step()     masks stats::step()
#> x recipes::yj_trans() masks scales::yj_trans()
library(tune)
library(doParallel)
#> Loading required package: foreach
#> 
#> Attaching package: 'foreach'
#> The following objects are masked from 'package:purrr':
#> 
#>     accumulate, when
#> Loading required package: iterators
#> Loading required package: parallel

data(Chicago)

us_hol <- 
  timeDate::listHolidays() %>% 
  stringr::str_subset("(^US)|(Easter)")

chi_rec <-
  recipe(ridership ~ ., data = Chicago) %>%
  step_holiday(date, holidays = us_hol) %>%
  step_date(date) %>%
  step_rm(date) %>%
  step_dummy(all_nominal()) %>%
  step_zv(all_predictors())

chi_folds <- rolling_origin(Chicago, initial = 364 * 15, assess = 7 * 4, skip = 7 * 4, cumulative = FALSE)

glmn_grid <- expand.grid(penalty = 10^seq(-3, -1, 
                                          length.out = 20), 
                         mixture = (0:5)/5)

glmn_rec <- chi_rec %>%  step_normalize(all_predictors()) 
glmn_mod <-
  linear_reg(penalty = tune(), mixture = tune()) %>% set_engine("glmnet")

ctrl <- control_grid(save_pred = TRUE,
                           verbose = TRUE)

glmn_tune <-
  tune_grid(
    glmn_rec,
    model = glmn_mod,
    resamples = chi_folds,
    grid = glmn_grid,
    control = ctrl
  )
#> i Slice1: recipe
#> v Slice1: recipe
#> i Slice1: model 1/6
#> v Slice1: model 1/6
#> i Slice1: model 1/6 (predictions)
#> i Slice1: model 2/6
#> v Slice1: model 2/6
#> i Slice1: model 2/6 (predictions)
#> i Slice1: model 3/6
#> v Slice1: model 3/6
#> i Slice1: model 3/6 (predictions)
#> i Slice1: model 4/6
#> v Slice1: model 4/6
#> i Slice1: model 4/6 (predictions)
#> i Slice1: model 5/6
#> v Slice1: model 5/6
#> i Slice1: model 5/6 (predictions)
#> i Slice1: model 6/6
#> v Slice1: model 6/6
#> i Slice1: model 6/6 (predictions)
#> i Slice2: recipe
#> v Slice2: recipe
#> i Slice2: model 1/6
#> v Slice2: model 1/6
#> i Slice2: model 1/6 (predictions)
#> i Slice2: model 2/6
#> v Slice2: model 2/6
#> i Slice2: model 2/6 (predictions)
#> i Slice2: model 3/6
#> v Slice2: model 3/6
#> i Slice2: model 3/6 (predictions)
#> i Slice2: model 4/6
#> v Slice2: model 4/6
#> i Slice2: model 4/6 (predictions)
#> i Slice2: model 5/6
#> v Slice2: model 5/6
#> i Slice2: model 5/6 (predictions)
#> i Slice2: model 6/6
#> v Slice2: model 6/6
#> i Slice2: model 6/6 (predictions)
#> i Slice3: recipe
#> v Slice3: recipe
#> i Slice3: model 1/6
#> v Slice3: model 1/6
#> i Slice3: model 1/6 (predictions)
#> i Slice3: model 2/6
#> v Slice3: model 2/6
#> i Slice3: model 2/6 (predictions)
#> i Slice3: model 3/6
#> v Slice3: model 3/6
#> i Slice3: model 3/6 (predictions)
#> i Slice3: model 4/6
#> v Slice3: model 4/6
#> i Slice3: model 4/6 (predictions)
#> i Slice3: model 5/6
#> v Slice3: model 5/6
#> i Slice3: model 5/6 (predictions)
#> i Slice3: model 6/6
#> v Slice3: model 6/6
#> i Slice3: model 6/6 (predictions)
#> i Slice4: recipe
#> v Slice4: recipe
#> i Slice4: model 1/6
#> v Slice4: model 1/6
#> i Slice4: model 1/6 (predictions)
#> i Slice4: model 2/6
#> v Slice4: model 2/6
#> i Slice4: model 2/6 (predictions)
#> i Slice4: model 3/6
#> v Slice4: model 3/6
#> i Slice4: model 3/6 (predictions)
#> i Slice4: model 4/6
#> v Slice4: model 4/6
#> i Slice4: model 4/6 (predictions)
#> i Slice4: model 5/6
#> v Slice4: model 5/6
#> i Slice4: model 5/6 (predictions)
#> i Slice4: model 6/6
#> v Slice4: model 6/6
#> i Slice4: model 6/6 (predictions)
#> i Slice5: recipe
#> v Slice5: recipe
#> i Slice5: model 1/6
#> v Slice5: model 1/6
#> i Slice5: model 1/6 (predictions)
#> i Slice5: model 2/6
#> v Slice5: model 2/6
#> i Slice5: model 2/6 (predictions)
#> i Slice5: model 3/6
#> v Slice5: model 3/6
#> i Slice5: model 3/6 (predictions)
#> i Slice5: model 4/6
#> v Slice5: model 4/6
#> i Slice5: model 4/6 (predictions)
#> i Slice5: model 5/6
#> v Slice5: model 5/6
#> i Slice5: model 5/6 (predictions)
#> i Slice5: model 6/6
#> v Slice5: model 6/6
#> i Slice5: model 6/6 (predictions)
#> i Slice6: recipe
#> v Slice6: recipe
#> i Slice6: model 1/6
#> v Slice6: model 1/6
#> i Slice6: model 1/6 (predictions)
#> i Slice6: model 2/6
#> v Slice6: model 2/6
#> i Slice6: model 2/6 (predictions)
#> i Slice6: model 3/6
#> v Slice6: model 3/6
#> i Slice6: model 3/6 (predictions)
#> i Slice6: model 4/6
#> v Slice6: model 4/6
#> i Slice6: model 4/6 (predictions)
#> i Slice6: model 5/6
#> v Slice6: model 5/6
#> i Slice6: model 5/6 (predictions)
#> i Slice6: model 6/6
#> v Slice6: model 6/6
#> i Slice6: model 6/6 (predictions)
#> i Slice7: recipe
#> v Slice7: recipe
#> i Slice7: model 1/6
#> v Slice7: model 1/6
#> i Slice7: model 1/6 (predictions)
#> i Slice7: model 2/6
#> v Slice7: model 2/6
#> i Slice7: model 2/6 (predictions)
#> i Slice7: model 3/6
#> v Slice7: model 3/6
#> i Slice7: model 3/6 (predictions)
#> i Slice7: model 4/6
#> v Slice7: model 4/6
#> i Slice7: model 4/6 (predictions)
#> i Slice7: model 5/6
#> v Slice7: model 5/6
#> i Slice7: model 5/6 (predictions)
#> i Slice7: model 6/6
#> v Slice7: model 6/6
#> i Slice7: model 6/6 (predictions)
#> i Slice8: recipe
#> v Slice8: recipe
#> i Slice8: model 1/6
#> v Slice8: model 1/6
#> i Slice8: model 1/6 (predictions)
#> i Slice8: model 2/6
#> v Slice8: model 2/6
#> i Slice8: model 2/6 (predictions)
#> i Slice8: model 3/6
#> v Slice8: model 3/6
#> i Slice8: model 3/6 (predictions)
#> i Slice8: model 4/6
#> v Slice8: model 4/6
#> i Slice8: model 4/6 (predictions)
#> i Slice8: model 5/6
#> v Slice8: model 5/6
#> i Slice8: model 5/6 (predictions)
#> i Slice8: model 6/6
#> v Slice8: model 6/6
#> i Slice8: model 6/6 (predictions)
# this works fine, but in parralel processing....


# parallel processing... 

parallel::detectCores(logical = FALSE)
#> [1] 4
# = 4 cores on my computer

registerDoParallel(makeCluster(4))

# run `tune_grid()`...
glmn_tune <-
  tune::tune_grid(
    glmn_rec,
    model = glmn_mod,
    resamples = chi_folds,
    grid = glmn_grid,
    control = ctrl
  )
#> Warning: All models failed in tune_grid(). See the `.notes` column.

glmn_tune$.notes[[1]]
#> # A tibble: 1 x 1
#>   .notes                                                                   
#>   <chr>                                                                    
#> 1 "recipe: Error in all_nominal(): could not find function \"all_nominal\""

Created on 2020-01-28 by the reprex package (v0.3.0)

@maxheld83
Copy link

maxheld83 commented Jan 29, 2020

I think this too, might be a duplicate of #157, or have the same root cause.
See comment in #157.

@github-actions
Copy link

github-actions bot commented Mar 7, 2021

This issue has been automatically locked. If you believe you have found a related problem, please file a new issue (with a reprex: https://reprex.tidyverse.org) and link to this issue.

@github-actions github-actions bot locked and limited conversation to collaborators Mar 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants