是否可以使用GPU训练H2O模型并使用CPU进行预测?

时间:2017-07-24 21:06:55

标签: gpu cpu h2o

对于训练速度,能够训练带有GPU的H2O模型,获取模型文件,然后在没有GPU的机器上进行预测会很好。

理论上似乎应该是可能的,但是对于H2O版本3.13.0.341,除了XGBoost模型之外似乎没有发生。

当我运行gpustat -cup时,我可以在训练H2O的XGBoost模型时看到GPU启动。 DL,DRF,GLM或GBM不会发生这种情况。

如果浮点大小(16,32,64)的差异可能导致一些不一致,更不用说由于多处理器建模引起的变幻莫测,我不会感到惊讶,但我想我可以忍受。

(这与我的问题有关,但现在我更了解环境,我可以看到GPU不会一直使用。)

How can I tell if H2O 3.11.0.266 is running with GPUs?

2 个答案:

答案 0 :(得分:1)

新的XGBoost integration in H2O是目前H2O(正确)中唯一支持GPU的算法。因此,您可以在GPU上训练XGBoost模型并在CPU上进行评分,但对于其他H2O algorithms则不然。

还有H2O Deep Water项目,该项目提供H2O与三个第三方深度学习后端(MXNet,Caffe和TensorFlow)之间的集成,所有后端都支持GPU。因此,您可以使用GPU训练这些模型并在CPU上进行评分。您可以在上面的Deep Water链接下载H2O Deep Water jar文件(或R包或Python模块),您可以在Deep Water GitHub repo README中找到更多信息。

答案 1 :(得分:0)

是的,您需要在GPU上进行繁重的训练,节省权重,然后您的CPU只会对预测进行矩阵乘法。

在Keras中,您可以训练模型并保存神经网络权重:

<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:x="http://www.w3.org/1999/XSL/TransformAlias"
    >
    <xsl:namespace-alias stylesheet-prefix="x" result-prefix="xsl"/>