OS X上的MXNet ML lib C ++分段错误

时间:2018-01-11 04:32:29

标签: python c++ macos mxnet

我在OS X上遇到Apache MXNet机器学习库的问题。

我已经能够运行Lenet的Python版本,卷积神经网络。 我在Anaconda Python 2.7和3.6下用pip安装了这些。

conda create -n mxnet27 python=2.7
conda info --envs
source activate mxnet27
conda list
pip install mxnet==0.12.1

但是当我运行C ++示例文件cpp-package / example / lenet.cpp时,我得到了这个段错误:

Segmentation fault: 11

这是抛出段错误的代码中的位置:

Symbol conv1 =
    Convolution("conv1", data, conv1_w, conv1_b, Shape(5, 5), 20);

我得到了其他C ++示例的类似段错误。

我在OS X 10.13.2上构建了MXNet 我禁用了尽可能多的库,例如OpenCV和CUDA。

关于Simon Corston-Oliver的建议我升级到MXNet 1.0.0,但该版本没有在OS X上使用Clang编译。错误信息:

operator_tune.h:150:36: note: add an explicit instantiation declaration to suppress this
      warning if 'mxnet::op::OperatorTuneByType<float>::tuning_mode_' is explicitly instantiated in another translation unit

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/unordered_map:601:15: error: object of type 'std::__1::pair<int,
  mxnet::test::perf::TimingInstrument::Info>' cannot be assigned because its copy assignment operator is implicitly deleted

2 个答案:

答案 0 :(得分:1)

我不知道v0.12会导致段错误的具体问题,但在我们深入研究之前,我建议升级到2017年12月4日发布的v1.0。

如果您仍遇到1.0的相同问题,我们可以进行调试。

答案 1 :(得分:1)

我找到了一个解决方案来编译由helloniklas发布的MXNet 1.0.0:

https://github.com/apache/incubator-mxnet/issues/9217

仅涉及使用make代替CMake

这个解决方案让我工作并编译了代码。

C ++示例在没有seg错误的情况下运行,但文档很少。我只有一个要做的训练。