【发布时间】:2018-06-13 21:05:28
【问题描述】:
在尝试使用支持 mxnet 的 h2o deepwater 训练用于多类分类的 lenet 模型时,出现以下错误:
Loading H2O mxnet bindings.
Found CUDA_HOME or CUDA_PATH environment variable, trying to connect to GPU devices.
Loading CUDA library.
Loading mxnet library.
Loading H2O mxnet bindings.
Done loading H2O mxnet bindings.
Constructing model.
Done constructing model.
Building network.
mxnet data input shape: (32,100)
[10:40:16] /home/jenkins/slave_dir_from_mr-0xb1/workspace/deepwater-master/thirdparty/mxnet/dmlc-core/include/dmlc/logging.h:235: [10:40:16] src/operator/./convolution-inl.h:349: Check failed: (dshape.ndim()) == (4) Input data should be 4D in batch-num_filter-y-x
[10:40:16] src/symbol.cxx:189: Check failed: (MXSymbolInferShape(GetHandle(), keys.size(), keys.data(), arg_ind_ptr.data(), arg_shape_data.data(), &in_shape_size, &in_shape_ndim, &in_shape_data, &out_shape_size, &out_shape_ndim, &out_shape_data, &aux_shape_size, &aux_shape_ndim, &aux_shape_data, &complete)) == (0)
我的设置细节:
* Ubuntu : 16.04
* 内存:12gb
* 显卡:Nvidia 920mx 驱动版本:384.90
* 库达:8.0.61
* cudnn:6.0
* R 版本:3.4.3
* H2o 版本:3.15.0.393 & h2o-R 包:3.16.0.2
* mxnet:0.11.0
* 训练数据大小:400mb(转换为 h2o 框架对象时约为 822mb)
我做过的事情:
1.) 在运行 h2o 集群时为 java 堆提供足够的内存 (java -Xmx9g -jar h2o.jar)
2.) 从源代码为 gpu 构建 mxnet
3.) 通过 nvidia-smi 和系统监视器监控 gpu 和系统。他们绝不会吃掉所有的内存来显示“内存不足”的问题。在错误出现之前,我仍然会有大约 2-3gb 的空闲空间
4.) 尝试使用 tensorflow-gpu(从源代码构建)。检查 pip 列表确保它已安装,但在 R 中创建模型期间它会给出错误:Error: java.lang.RuntimeException: Unable to initialize the native Deep Learning backend: null
5.) 我让 h2o deepwater 与所有后端和 w/wo GPU 一起工作的唯一方法是通过安装教程中提供的 docker 设置。
我想在我的笔记本电脑上使用相同的功能,而不是使用 Docker。还有什么方法可以只使用 CPU 来运行深水?链接Is it possible to build Deep Water/TensorFlow model in H2O without CUDA 没有提供任何有用的答案。任何帮助或建议将不胜感激!
【问题讨论】:
-
我不知道这是否正确,但我得到一个信息,在最近的 H2O World 2017 上,H2O.ai 停止了深水开发,并建议他们自己的客户改用 Keras。
标签: r nlp h2o tensorflow-gpu mxnet