Я выполняю tox
тесты для Python 2.7 на машине Linux с зависимостью xgboost==0.6a2
(предварительно скомпилированной как колесо для Linux).
В тестах я необходимо загрузить предварительно скомпилированную модель XGBClassifier
через модуль scikit-learn
joblib
следующим образом:
from sklearn.externals import joblib
model = joblib.load('path/to/model.pkl')
Когда я запускаю $ nosetests ./tests
с моей локальной виртуальной средой, проблема не возникает, и модель загружена правильно.
Я хочу запустить тесты также с tox
. Я запускаю следующую команду:
$ tox -v test
Ниже мой tox.ini
.
[tox]
envlist = py27
[testenv]
commands =
nosetests ./tests
Однако тесты не выполняются при загрузке модели XGBClassifier
, выдавая следующую ошибку :
File "/home/********/project/my_project/load_model.py", line 56, in load_model
model = joblib.load('path/to/model.pkl'))
File "/home/********/project/.tox/py27/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 598, in load
obj = _unpickle(fobj, filename, mmap_mode)
File "/home/********/project/.tox/py27/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 526, in _unpickle
obj = unpickler.load()
File "/opt/********/.pyenv/versions/2.7.12/lib/python2.7/pickle.py", line 864, in load
dispatch[key](self)
File "/home/********/project/.tox/py27/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 339, in load_build
Unpickler.load_build(self)
File "/opt/********/.pyenv/versions/2.7.12/lib/python2.7/pickle.py", line 1223, in load_build
setstate(state)
File "/home/********/project/.tox/py27/lib/python2.7/site-packages/xgboost/core.py", line 678, in __setstate__
_check_call(_LIB.XGBoosterLoadModelFromBuffer(handle, ptr, length))
File "/home/********/project/.tox/py27/lib/python2.7/site-packages/xgboost/core.py", line 127, in _check_call
raise XGBoostError(_LIB.XGBGetLastError())
XGBoostError: [10:28:58] src/objective/objective.cc:21: Unknown objective function multi:softprob
Ниже приведены соответствующие зависимости, которые я использую:
"scikit-learn==0.20.4"
"numpy==1.16.6"
"nose==1.3.7"
"tox==3.14.3"
"xgboost==0.6a2"