нарушение сегментации на xgboost - PullRequest
0 голосов
/ 07 апреля 2020

Я Дани, и я новичок в xgboost.

Я использую xgboost для своей дипломной работы, чтобы построить BDT для различения guish между соответствующим сигналом и фоновыми событиями на детекторе LHCb (проблема классификации!). Сейчас я работаю с кодом, который мне прислал мой профессор.

У меня проблемы с запуском файла BDT.py. Я не собираюсь помещать весь код, так как я думаю, что нашел проблему отладкой. Я получаю ошибку нарушения сегментации, когда запускаю эту часть кода:

model = XGBClassifier(max_depth=3, learning_rate=0.3, n_estimators=200)
model.fit(X_train, y_train)

Я отладил ее, и перед этими инструкциями проблем нет, данные хорошо импортированы и имеют правильные размеры.

В частности, я получаю это сообщение об ошибке (извините за размер) :

*** Break *** segmentation violation
 Generating stack trace...
 0x00007f80c957e924 in <unknown> from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958345e in xgboost::tree::ColMaker::Builder::UpdateSolution(xgboost::SparsePage const&, std::vector<int, std::allocator<int> > const&, std::vector<xgboost::detail::GradientPairInternal<float>, std::allocator<xgboost::detail::GradientPairInternal<float> > > const&, xgboost::DMatrix*) + 0x51e from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958a85e in xgboost::tree::ColMaker::Builder::FindSplit(int, std::vector<int, std::allocator<int> > const&, std::vector<xgboost::detail::GradientPairInternal<float>, std::allocator<xgboost::detail::GradientPairInternal<float> > > const&, xgboost::DMatrix*, xgboost::RegTree*) + 0x7e from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958eba4 in xgboost::tree::ColMaker::Builder::Update(std::vector<xgboost::detail::GradientPairInternal<float>, std::allocator<xgboost::detail::GradientPairInternal<float> > > const&, xgboost::DMatrix*, xgboost::RegTree*) + 0xd4 from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958f95e in xgboost::tree::ColMaker::Update(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float> >*, xgboost::DMatrix*, std::vector<xgboost::RegTree*, std::allocator<xgboost::RegTree*> > const&) + 0x1ee from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c950dcff in xgboost::gbm::GBTree::BoostNewTrees(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float> >*, xgboost::DMatrix*, int, std::vector<std::unique_ptr<xgboost::RegTree, std::default_delete<xgboost::RegTree> >, std::allocator<std::unique_ptr<xgboost::RegTree, std::default_delete<xgboost::RegTree> > > >*) + 0x58f from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c950f10e in xgboost::gbm::GBTree::DoBoost(xgboost::DMatrix*, xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float> >*, xgboost::ObjFunction*) + 0x8de from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c95552a3 in xgboost::LearnerImpl::UpdateOneIter(int, xgboost::DMatrix*) + 0x3e3 from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c9474535 in XGBoosterUpdateOneIter + 0x35 from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f79cd18ddae in ffi_call_unix64 + 0x4c from /usr/lib/x86_64-linux-gnu/libffi.so.6
 0x00007f79cd18d71f in ffi_call + 0x22f from /usr/lib/x86_64-linux-gnu/libffi.so.6
 0x00007f79cd3a0cc4 in _ctypes_callproc + 0x2a4 from /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so
 0x00007f79cd3a06c5 in <unknown> from /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so
 0x000055a120a82e00 in PyEval_EvalFrameEx + 0x5500 from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a7af39 in PyEval_EvalCode + 0x19 from python
 0x000055a120aac04f in <unknown> from python
 0x000055a120aa7292 in PyRun_FileExFlags + 0x82 from python
 0x000055a120aa6cbd in PyRun_SimpleFileExFlags + 0x18d from python
 0x000055a120a553e6 in Py_Main + 0x616 from python
 0x00007f80ff656b97 in __libc_start_main + 0xe7 from /lib/x86_64-linux-gnu/libc.so.6
 0x000055a120a54cda in _start + 0x2a from python
 *** Break *** segmentation violation
 Generating stack trace...
 0x00007f80c957e924 in <unknown> from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958345e in xgboost::tree::ColMaker::Builder::UpdateSolution(xgboost::SparsePage const&, std::vector<int, std::allocator<int> > const&, std::vector<xgboost::detail::GradientPairInternal<float>, std::allocator<xgboost::detail::GradientPairInternal<float> > > const&, xgboost::DMatrix*) + 0x51e from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958a85e in xgboost::tree::ColMaker::Builder::FindSplit(int, std::vector<int, std::allocator<int> > const&, std::vector<xgboost::detail::GradientPairInternal<float>, std::allocator<xgboost::detail::GradientPairInternal<float> > > const&, xgboost::DMatrix*, xgboost::RegTree*) + 0x7e from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958eba4 in xgboost::tree::ColMaker::Builder::Update(std::vector<xgboost::detail::GradientPairInternal<float>, std::allocator<xgboost::detail::GradientPairInternal<float> > > const&, xgboost::DMatrix*, xgboost::RegTree*) + 0xd4 from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c958f95e in xgboost::tree::ColMaker::Update(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float> >*, xgboost::DMatrix*, std::vector<xgboost::RegTree*, std::allocator<xgboost::RegTree*> > const&) + 0x1ee from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c950dcff in xgboost::gbm::GBTree::BoostNewTrees(xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float> >*, xgboost::DMatrix*, int, std::vector<std::unique_ptr<xgboost::RegTree, std::default_delete<xgboost::RegTree> >, std::allocator<std::unique_ptr<xgboost::RegTree, std::default_delete<xgboost::RegTree> > > >*) + 0x58f from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c950f10e in xgboost::gbm::GBTree::DoBoost(xgboost::DMatrix*, xgboost::HostDeviceVector<xgboost::detail::GradientPairInternal<float> >*, xgboost::ObjFunction*) + 0x8de from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c95552a3 in xgboost::LearnerImpl::UpdateOneIter(int, xgboost::DMatrix*) + 0x3e3 from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f80c9474535 in XGBoosterUpdateOneIter + 0x35 from /usr/local/lib/python2.7/dist-packages/xgboost/./lib/libxgboost.so
 0x00007f79cd18ddae in ffi_call_unix64 + 0x4c from /usr/lib/x86_64-linux-gnu/libffi.so.6
 0x00007f79cd18d71f in ffi_call + 0x22f from /usr/lib/x86_64-linux-gnu/libffi.so.6
 0x00007f79cd3a0cc4 in _ctypes_callproc + 0x2a4 from /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so
 0x00007f79cd3a06c5 in <unknown> from /usr/lib/python2.7/lib-dynload/_ctypes.x86_64-linux-gnu.so
 0x000055a120a82e00 in PyEval_EvalFrameEx + 0x5500 from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a82ffe in PyEval_EvalFrameEx + 0x56fe from python
 0x000055a120a7b61a in PyEval_EvalCodeEx + 0x6da from python
 0x000055a120a7af39 in PyEval_EvalCode + 0x19 from python
 0x000055a120aac04f in <unknown> from python
 0x000055a120aa7292 in PyRun_FileExFlags + 0x82 from python
 0x000055a120aa6cbd in PyRun_SimpleFileExFlags + 0x18d from python
 0x000055a120a553e6 in Py_Main + 0x616 from python
 0x00007f80ff656b97 in __libc_start_main + 0xe7 from /lib/x86_64-linux-gnu/libc.so.6
 0x000055a120a54cda in _start + 0x2a from python

(да, оно появляется дважды)

Я искал сегментацию ошибки нарушения, и я читаю это может быть из-за размера данных, поэтому я уменьшил их до смешного размера, и я получаю ту же ошибку. Так что я думаю, что с данными не проблема!

И я не знаю, возникает ли проблема из-за написанных выше функций, так как они очень распространенные инструкции в xgboost. Я не манипулирую кодом моего профессора, поэтому не знаю, откуда возникла проблема, поскольку могу выполнить предыдущие строки своего кода.

Может быть, это небольшая проблема, но я потерялся!

PD : Я работаю на python 2.7 и версии xgboost 0.82

Спасибо.

Дани

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...