ОБНОВЛЕНИЕ: Я выяснил проблему, но не решение. Это проблема с новой версией Java. У меня возникла эта проблема. Как только я обновился до последней Java.h2o пакет глубокого обучения выводит одно значение при использовании автоопределения
Я использую h2o и пакет глубокого обучения на некоторое время без проблем. Сегодня я использовал его снова, но я все равно получаю то же значение для всех строк в определенном столбце, когда я извлекаю функции из модели deeplearning. Раньше он работал нормально. Я пытался использовать разные наборы данных, которые не работали. поэтому я предполагаю, что это либо мой набор данных (который раньше работал), либо что-то более глубокое.
Это мой код. Любая помощь приветствуется.
library(h2o)
localH20=h2o.init(nthreads = -1)
data=h2o.importFile(localH20, path="smsAllWords.csv", header=T)
model= h2o.deeplearning(x=1:107, training_frame = data, shuffle_training_data=TRUE, activation = "Tanh", hidden = c(100,75,50,25), epochs= 5,autoencoder = TRUE)
dl.data=h2o.deepfeatures(model,data,4)`
это пример того, что данные и вывод выглядит следующим образом: FYI: изменение данных выше для остальной части матрицы.
data[1:10,1:10]
H2OFrame with 10 rows and 10 columns
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
1 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
2 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 2.13240 -0.13307 1.80440
3 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 6.59090 -0.28192 -0.13307 -0.27609
4 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
5 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 4.40510
6 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
7 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
8 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
9 -0.31289 -0.10442 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
10 -0.31289 8.16410 -0.14504 -0.1143 -0.11115 -0.12753 -0.10413 -0.28192 -0.13307 -0.27609
dl.data[1:10,1:10]
H2OFrame with 10 rows and 10 columns
DF.L4.C1 DF.L4.C2 DF.L4.C3 DF.L4.C4 DF.L4.C5 DF.L4.C6 DF.L4.C7 DF.L4.C8 DF.L4.C9 DF.L4.C10
1 -1 -1 1 -1 1 1 1 1 -1 -1
2 -1 -1 1 -1 1 1 1 1 -1 -1
3 -1 -1 1 -1 1 1 1 1 -1 -1
4 -1 -1 1 -1 1 1 1 1 -1 -1
5 -1 -1 1 -1 1 1 1 1 -1 -1
6 -1 -1 1 -1 1 1 1 1 -1 -1
7 -1 -1 1 -1 1 1 1 1 -1 -1
8 -1 -1 1 -1 1 1 1 1 -1 -1
9 -1 -1 1 -1 1 1 1 1 -1 -1
10 -1 -1 1 -1 1 1 1 1 -1 -1
редактировать: я запускал тот же самый набор данных и другой один несколько раз, и я получить разные результаты. Я вообще не меняю свой код, но иногда он будет работать, иногда он не будет. У меня отсутствует параметр, который может контролировать это?
ОБНОВЛЕНИЕ: Я также попытался использовать тот же набор данных на другой машине, и он работал правильно. Поэтому я почти уверен, что это проблема с другой машиной. Я попытался удалить R и удалить все, что с ним связано, а затем переустановить его, но это не решило проблему.
я сделал. та же проблема. если я буду использовать один и тот же набор данных несколько раз, я получу разные результаты. Я вообще не меняю свой код, но иногда он будет работать, иногда он не будет. У меня отсутствует параметр, который может контролировать это? – nasser
H2O Deep Learning не воспроизводится, если вы не установите воспроизводимый = TRUE и seed = 1234 (или любое целое число). В этом случае он работает в однопоточном режиме и намного медленнее, но каждый раз будет работать одна и та же модель. Тот факт, что ваша модель не дает согласованных результатов, означает, что параметры не очень хорошие. Если вам нужна глубокая сеть, вы можете попробовать сложный автокодер: https://github.com/h2oai/h2o-3/blob/master/h2o-r/tests/testdir_algos/deeplearning/runit_deeplearning_stacked_autoencoder_large.R или посмотреть MSE на данные обучения, чтобы подтвердить, что со временем это становится лучше. –
отличается от параметра autoencoder в функции deeplearning? технически это также сложено, если у вас несколько скрытых слоев. Я также попробовал тот же набор данных на другой машине, и он работал правильно. Поэтому я почти уверен, что это проблема с другой машиной. Я попытался удалить R и удалить все, что с ним связано, а затем переустановить его, но это не решило проблему. – nasser