Ошибка сегментации MXNet ML lib C ++ в OS X

У меня проблема с библиотекой машинного обучения 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, я получаю этот segfault:

Segmentation fault: 11

Это место в коде, где выдается segfault:

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

person Sami Badawi    schedule 11.01.2018    source источник
comment
Рад слышать, что вы смогли установить. Установка pip без указания версии по умолчанию должна быть v1.0, если вам не нужно ничего необычного для сборки. Это избавит вас от необходимости компилировать из исходников.   -  person Simon Corston-Oliver    schedule 16.01.2018


Ответы (2)


Я не знаю конкретной проблемы с v0.12, которая могла бы привести к сбою в сегменте, но прежде чем мы углубимся, я бы порекомендовал выполнить обновление до версии v1.0, выпущенной 04.12.2017.

Если вы все еще сталкиваетесь с той же проблемой с 1.0, мы можем работать над отладкой.

person Simon Corston-Oliver    schedule 13.01.2018
comment
Спасибо, я пытаюсь это сделать. Компилятор My Clang стал очень медленным после исправлений безопасности Meltdown и Spectre. - person Sami Badawi; 15.01.2018
comment
У меня ошибка компиляции при компиляции 1.0.0 с Clang в OS X: deeplearning / mxnet / nnvm / include /../../ src / operator /./ operator_tune.h: 150: 36: примечание: добавьте явное объявление экземпляра для подавления этого предупреждения, если 'mxnet :: op :: OperatorTuneByType ‹float› :: tuning_mode_' явно создан в другой единице перевода v1 / unordered_map: 601: 15: error: объект типа 'std :: __ 1 :: pair ‹int , mxnet :: test :: perf :: TimingInstrument :: Info ›'не может быть назначен, потому что его оператор присваивания копии неявно удален - person Sami Badawi; 15.01.2018

Я нашел решение для компиляции MXNet 1.0.0, размещенное здесь helloniklas:

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

При этом использовалось только make вместо CMake.

Это решение сработало и скомпилировало код.

Примеры C ++ работают без ошибки seg, но документации мало. У меня только одна тренировка.

person Sami Badawi    schedule 16.01.2018