更新: 我想出了问题,但没有找到解决方案。这是新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)`
这是数据和输出的样本: 仅供参考:矩阵其余部分的数据变化较高。
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并删除与之关联的所有内容然后重新安装,但这并没有解决问题。
答案 0 :(得分:1)
如果它之前在相同版本的H2O上有效,那么它必然是一个收敛问题(找到了错误的局部最小值)。您可以尝试将隐藏图层的数量从hidden = c(100,75,50,25)
减少到hidden=c(50)
,看看是否有效。否则,几乎可以肯定是数据问题。