我在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
答案 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错误的情况下运行,但文档很少。我只有一个要做的训练。