Ошибка использования развертывания при использовании xgboost в службах приложения Azure - PullRequest
1 голос
/ 06 апреля 2019

Я развертываю веб-приложение на фляге с моделью машинного обучения, обученной с использованием xgboost.Работает нормально на локальном компьютере, выдает ошибку при использовании Linux-службы служб приложений Azure.

Кажется, что установка xgboost не выполняется должным образом.Я не могу устранить неполадки с помощью их веб-SSH, поскольку он отключается каждые несколько секунд.Кто-нибудь знает, как это исправить?

Ошибка:

2019-04-05T20:46:57.927633884Z /home/site/wwwroot/antenv/lib/python3.7/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py:47: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
2019-04-05T20:46:57.927671786Z   import imp
2019-04-05T20:46:57.927678286Z [2019-04-05 20:46:57 +0000] [39] [ERROR] Exception in worker process
2019-04-05T20:46:57.927682786Z Traceback (most recent call last):
2019-04-05T20:46:57.927686887Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2019-04-05T20:46:57.927691387Z     worker.init_process()
2019-04-05T20:46:57.927695487Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
2019-04-05T20:46:57.927700087Z     self.load_wsgi()
2019-04-05T20:46:57.927703987Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2019-04-05T20:46:57.927715888Z     self.wsgi = self.app.wsgi()
2019-04-05T20:46:57.927720188Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
2019-04-05T20:46:57.927724388Z     self.callable = self.load()
2019-04-05T20:46:57.927728188Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2019-04-05T20:46:57.927732288Z     return self.load_wsgiapp()
2019-04-05T20:46:57.927736189Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2019-04-05T20:46:57.927740389Z     return util.import_app(self.app_uri)
2019-04-05T20:46:57.927744389Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
2019-04-05T20:46:57.927748389Z     __import__(module)
2019-04-05T20:46:57.927752289Z   File "/home/site/wwwroot/app.py", line 4, in 
2019-04-05T20:46:57.927756789Z     import xgboost as xgb
2019-04-05T20:46:57.927760690Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/xgboost/__init__.py", line 11, in 
2019-04-05T20:46:57.927764990Z     from .core import DMatrix, Booster
2019-04-05T20:46:57.927768990Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/xgboost/core.py", line 136, in 
2019-04-05T20:46:57.927773190Z     _LIB = _load_lib()
2019-04-05T20:46:57.927776990Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/xgboost/core.py", line 128, in _load_lib
2019-04-05T20:46:57.927781090Z     lib.XGBGetLastError.restype = ctypes.c_char_p
2019-04-05T20:46:57.927784991Z UnboundLocalError: local variable 'lib' referenced before assignment

1 Ответ

0 голосов
/ 09 апреля 2019

Похоже, модуль xgboost не загружен.Я бы посоветовал вам импортировать mpodule во время запуска.В Docker вы можете сделать это, указав шаги установки в файле Docker.

Вы можете использовать шаги из докер-файла образа докера на альпийской основе: https://github.com/Nexosis/alpine-xgboost/blob/master/Dockerfile

Кстати, я нашел это в обсуждении в теме Github: https://github.com/dmlc/xgboost/issues/3157

Подробнее: Один из способов сделать это - скопировать копию официального образа Python, используемого в службе приложений Azure, отсюда: https://hub.docker.com/r/appsvc/python

Как только вы получите этоВы можете отредактировать dockerfile в своем репозитории и включить шаги из решения, опубликованного выше, для создания собственного образа docker.Это обеспечит загрузку всех модулей.

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