Как изменить веса в общем интерфейсе mlp на тидимоделях?

Итак, я пытаюсь приспособить модель глубокого обучения к своим данным, используя tidymodels. Общий интерфейс для этого - mlp(), и я использую fit_resamples(), чтобы найти лучшую модель для внешних данных. Я все время получаю эту ошибку:

ann_model <-
  mlp(epochs = 50, hidden_units = 5, dropout = 0.1) %>%
  set_engine("nnet", weights = 10000) %>% 
  set_mode("regression")

ann_wflw <-
  workflow() %>% 
  add_recipe(dados_recipe) %>% 
  add_model(ann_model)

ann_fit <- 
  ann_wflw %>% 
  fit_resamples(resamples = dados_cv)

x Fold01, Repeat1: model: Error in nnet.default(x, y, w, ...): too many (1301) weights

x Fold02, Repeat1: model: Error in nnet.default(x, y, w, ...): too many (1296) weights....

Как мне изменить вес? Пожалуйста, я действительно тороплюсь. Кстати, есть ли другой подход, чтобы не переобучать мои данные обучения, кроме перекрестной проверки? Заранее спасибо!


person gustavo_marques    schedule 13.10.2020    source источник
comment
Вам будет легче помочь, если вы включите простой воспроизводимый пример с образцом ввода и желаемым выходом, которые можно использовать для тестирования и проверки возможных решений.   -  person MrFlick    schedule 13.10.2020


Ответы (1)


Я думаю, вы хотите увеличить параметр MaxNWts вместо weights.

Я цитирую ответ ниже на Я получаю ошибку Ошибка в nnet.default (x, y, w, ...): слишком много (77031) весов при обучении нейронных сетей

Либо увеличьте MaxNWts до того, что будет соответствовать размеру вашей модели, либо уменьшите размер, чтобы ваша модель стала меньше.

Согласно документации nnet, weights - это

(case) веса для каждого примера - при отсутствии значения по умолчанию 1

В то время как MaxNWts

Максимально допустимое количество весов. В коде нет внутреннего ограничения, но увеличение MaxNWts, вероятно, позволит очень медленные и трудоемкие подгонки.

person Hany Nagaty    schedule 13.10.2020
comment
Большое спасибо, это был тот аргумент, который я искал! - person gustavo_marques; 13.10.2020