为什么 H2O 自动编码器对于一个数据集如此缓慢而对另一个数据集如此缓慢?
Why is H2O autoencoder so slow for one data set but not the other?
当我 运行 H2O autoencoder 在两个大小相同的不同数据集上(见下文)时,我可以在 5 分钟内完成一个数据集 (A),但另一个数据集 (B)真的很慢。数据集 B 仅完成 1% 需要 >30 分钟。我尝试重启 R 会话和 H2O 几次,但这没有帮助。两个数据集的模型中有大约相同数量的参数(或系数)。
数据集 A:4 * 1,000,000 大小(<5 分钟)
数据集B:8 * 477,613大小(很慢)
以下模型用于两个数据集:
model.dl = h2o.deeplearning(x = x, training_frame = data.hex, autoencoder = TRUE, activation = "Tanh", hidden = c(25,25,25), variable_importances = TRUE)
两个数据集的H2O集群内存都是15GB。使用同一台计算机(OS X 10.14.6,16 GB 内存)。下面是一些关于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)
如果我可以提供任何其他信息来解决此问题,请告诉我。
此问题已解决。
问题是模型中one-hot-encoding后数据集B的列多了很多运行。请看下面。
数据集A:
有 4 个分类特征。这些分类特征的唯一值数量分别为 12、14、25 和 10。
数据集B:
有 7 个分类特征和 1 个数值特征。分类特征的唯一值数量分别为 17、49、52、85、5032 (!)、18445 (!!) 和 392124 (!!!)。这解释了为什么它这么慢。
当我 运行 H2O autoencoder 在两个大小相同的不同数据集上(见下文)时,我可以在 5 分钟内完成一个数据集 (A),但另一个数据集 (B)真的很慢。数据集 B 仅完成 1% 需要 >30 分钟。我尝试重启 R 会话和 H2O 几次,但这没有帮助。两个数据集的模型中有大约相同数量的参数(或系数)。
数据集 A:4 * 1,000,000 大小(<5 分钟)
数据集B:8 * 477,613大小(很慢)
以下模型用于两个数据集:
model.dl = h2o.deeplearning(x = x, training_frame = data.hex, autoencoder = TRUE, activation = "Tanh", hidden = c(25,25,25), variable_importances = TRUE)
两个数据集的H2O集群内存都是15GB。使用同一台计算机(OS X 10.14.6,16 GB 内存)。下面是一些关于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)
如果我可以提供任何其他信息来解决此问题,请告诉我。
此问题已解决。
问题是模型中one-hot-encoding后数据集B的列多了很多运行。请看下面。
数据集A:
有 4 个分类特征。这些分类特征的唯一值数量分别为 12、14、25 和 10。
数据集B:
有 7 个分类特征和 1 个数值特征。分类特征的唯一值数量分别为 17、49、52、85、5032 (!)、18445 (!!) 和 392124 (!!!)。这解释了为什么它这么慢。