Почему автоэнкодер H2O работает так медленно для одного набора данных, но не для другого? - PullRequest
2 голосов
/ 16 июня 2020

Когда я запускаю автоэнкодер H2O на двух разных наборах данных примерно одинакового размера (см. Ниже), я могу завершить sh один набор данных (A) в течение 5 минут, но другой набор данных (B) работает очень медленно . Для завершения только 1% для набора данных B требуется> 30 минут. Я несколько раз пытался перезапустить сеанс R и H2O, но это не помогло. В модели для обоих наборов данных примерно одинаковое количество параметров (или коэффициентов).

Набор данных A: размер 4 * 1000000 (<5 минут) </p>

Набор данных B: размер 8 * 477613 (очень медленно)

Используется модель, указанная ниже для обоих наборов данных:

model.dl = h2o.deeplearning(x = x, training_frame = data.hex, autoencoder = TRUE, activation = "Tanh", hidden = c(25,25,25), variable_importances = TRUE)

Память кластера H2O составляет 15 ГБ для обоих наборов данных. Используется тот же компьютер (OS X 10.14.6, память 16 ГБ). Ниже приведена некоторая информация о версиях H2O и R.

H2O cluster version:        3.30.0.1
H2O cluster total nodes:    1
H2O cluster total memory:   15.00 GB
H2O cluster total cores:    16
H2O cluster allowed cores:  16
H2O cluster healthy:        TRUE
R Version:                  R version 3.6.3 (2020-02-29)

Пожалуйста, дайте мне знать, если есть какая-либо другая информация, которую я могу предоставить для решения этой проблемы.

1 Ответ

1 голос
/ 16 июня 2020

Эта проблема решена.

Проблема в том, что после однократного горячего кодирования во время прогона модели для набора данных B гораздо больше столбцов. См. Ниже.

Набор данных A:

Имеется 4 категориальных характеристики. Число уникальных значений для этих категориальных признаков составляет 12, 14, 25 и 10.

Набор данных B:

Имеется 7 категориальных признаков и 1 числовой признак. Количество уникальных значений для категориальных признаков - 17, 49, 52, 85, 5032 (!), 18445 (!!) и 392124 (!!!) соответственно. Это объясняет, почему он такой медленный.

...