h2o 深水模型训练失败

Model training fails with h2o deepwater

在尝试使用支持 mxnet 的 h2o 深水训练用于多类分类的 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.) 在 运行ning h2o 集群时为 java 堆提供足够的内存 (java -Xmx9g -jar h2o.jar)
2.) 从源代码为 gpu
构建 mxnet 3.) 通过 nvidia-smi 和系统监视器监控 gpu 和系统。他们绝不会吃掉所有 ram 来显示 "out of memory" 问题。在错误出现之前,我仍然会有大约 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 到 运行 深水区吗? link Is it possible to build Deep Water/TensorFlow model in H2O without CUDA 没有提供任何有用的答案。任何帮助或建议将不胜感激!

从错误日志和 mxnet.sym.Convolution 的文档可以明显看出,您的数据需要采用 [batch, channels, height, width] 格式。但是,您的数据看起来只包含两个维度(基于此日志:mxnet data input shape: (32,100))。重新格式化数据,甚至包括大小为 1 的两个维度,使您的输入形状为 (1,1,32,100) 应该可以解决此问题。