У меня проблема с библиотекой машинного обучения Apache MXNet на OS X.
Мне удалось запустить Python-версию Lenet, сверточной нейронной сети.
Я установил их с помощью pip под Anaconda Python 2.7 и 3.6.
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);
Я получаю аналогичный segfault для других примеров C ++.
Я построил MXNet на OS X 10.13.2
Я отключил как можно больше библиотек, например, OpenCV и CUDA.
По предложению Саймона Корстона-Оливера я обновился до MXNet 1.0.0, но эта версия не скомпилировалась с Clang на OS X. Сообщение об ошибке:
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, которая привела бы к segfault, но прежде чем мы начнем копаться, я бы рекомендовал обновить ее до v1.0, который был выпущен 2017-12-04.
Если вы все еще сталкиваетесь с той же проблемой с 1.0, мы можем работать для отладки.
Я нашел решение для компиляции MXNet 1.0.0, размещенное здесь helloniklas:
https://github.com/apache/incubator-mxnet/issues/9217
Это связано только с использованием make
вместо CMake
,
Это решение сработало у меня и скомпилировало код.
Примеры C ++ выполняются без ошибки seg, но документации недостаточно. У меня есть только один для обучения.