#python #heroku #deployment #zipfile #joblib
#python #heroku #развертывание #zip #joblib
Вопрос:
Я пытаюсь развернуть модель машинного обучения, которая находится внутри zip-файла из-за его размера. Я пытаюсь прочитать модель с помощью joblib, но получаю сообщение об ошибке.
Это часть кода:
def unzip_model():
with ZipFile("service/ProperatiBestModel14.zip", 'r') as zip:
print('Extracting all the files now...')
zip.extractall()
mod = joblib.load("service/gbm.pkl")
return mod
и это сообщение об ошибке:
2020-12-10T03:33:40.574939 00:00 приложение [web.1]: предварительная обработка = HousingService()
2020-12-10T03:33:40.574947 00:00 приложение[web.1]: Файл «/app/service/model_service.py «, строка 22, в init
2020-12-10T03:33:40.575054 00:00 приложение[web.1]: self.lgbm = self.__unzip_model()
2020-12-10T03:33:40.575073 00:00 приложение[web.1]: Файл «/app/service/model_service.py «, строка 18, в модели __unzip_
2020-12-10T03:33:40.575168 00:00 приложение [web.1]: mod = joblib.load(«service/gbm.pkl»)
2020-12-10T03:33:40.575255 00:00 приложение[web.1]: Файл «/app/.heroku/python/lib/python3.8/site-packages/joblib/numpy_pickle.py «, строка 577, в нагрузке
2020-12-10T03:33:40.575429 00:00 приложение [web.1]: с открытым (имя файла, ‘rb’) как f:
2020-12-10T03:33:40.575463 00:00 приложение[web.1]: ошибка поиска файла: [Ошибка 2] Нет такого файла или каталога: ‘service/gbm.pkl’
2020-12-10T03:33:40.706453 00:00 heroku[web.1]: процесс завершен со статусом 1
2020-12-10T03:33:40.744274 00:00 heroku[web.1]: состояние изменено с начального на аварийное
Я уже пробовал разные способы назначения каталога, например os.getcwd(), но ничего не работает.
Комментарии:
1. является ли zip-файл частью репозитория GIT, который вы отправляете в Heroku?
2. Да, это часть того же репозитория. Кроме того, Heroku и код могут найти zip-файл. Проблема возникает, когда мне нужно захватить файл, который был внутри zip-файла, как только я распакую все с помощью zip.extractall()
3. просто вернулся к этому. Когда именно вызывается unzip-код? Он должен быть в том же динамо, к которому будет получен доступ, или при создании образа. Если вы используете рабочий процесс, или одноразовый, или процесс выпуска для распаковки, это будут отдельные файловые системы.