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

MXNet ML lib C++ segmentation fault on OS X

本文关键字:分段 错误 OS ML lib C++ MXNet      更新时间:2023-10-16

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

我已经能够运行Python版本的Lenet,卷积神经网络。我在 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
我不知道

v0.12 有什么具体问题会导致段错误,但在我们深入研究之前,我建议升级到 2017-12-04 发布的 v1.0。

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

>我找到了编译 MXNet 1.0.0 的解决方案,由 helloniklas 发布在这里:

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

它只涉及使用make而不是CMake

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

C++示例运行没有 SEG 错误,但文档很少。我只得到了一个做培训。