更新:我想出了问题,但没有找到解决方案 . 这是新Java版本的问题 . 我开始遇到这个问题一旦我更新到最新的Java .
我一直在使用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并删除与之关联的所有内容然后重新安装,但这并没有解决问题 .
1 回答
如果它之前在同一版本的H2O上工作,那么它必然是一个收敛问题(找到了糟糕的局部最小值) . 您可以尝试将隐藏图层的数量从
hidden = c(100,75,50,25)
减少到hidden=c(50)
,看看是否有效 . 否则,它几乎肯定是一个数据问题 .