Приложение Python Flask, демонстрирующее модель DL через REST API, обращено к клиенту в Heroku - PullRequest
0 голосов
/ 22 сентября 2019

Я обучил модель DL и пытался выставить ее в Интернете через REST API, разместив ее на сервере Heroku.

В локальной сети я перепробовал всю конфигурацию Heroku, протестировал API и, наконец, развернулэто успешно на Heroku.При обращении к этой конечной точке запрос истекает по тайм-ауту, и в журнале heroku я вижу следующий вывод:

2019-09-22T11:11:10.543181+00:00 app[web.1]: [2019-09-22 11:11:10 +0000] [48] [DEBUG] POST /analyse
2019-09-22T11:11:10.556943+00:00 app[web.1]: prediction started
2019-09-22T11:11:40.537864+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=POST path="/analyse" host=obscure-peak-46855.herokuapp.com request_id=f8f450ca-fd07-491d-aba2-433da710a3e1 fwd="103.242.239.84" dyno=web.1 connect=0ms service=30001ms status=503 bytes=0 protocol=https
2019-09-22T11:11:41.382624+00:00 app[web.1]: [2019-09-22 11:11:41 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:48)
2019-09-22T11:11:42.402385+00:00 app[web.1]: [2019-09-22 11:11:42 +0000] [49] [INFO] Booting worker with pid: 49
2019-09-22T11:12:39.861556+00:00 app[web.1]: [2019-09-22 11:12:39 +0000] [49] [DEBUG] Closing connection.

представляющий код Python:

statusDict = {}
print('prediction started')
predictionResult = 1 if model.predict(inputData)[0] > 0.5 else 0
print('prediction complete')
statusDict['input comment'] = inputSentence
statusDict['status'] = 'prediction complete'
statusDict['prediction'] = predictionResult
response.update(statusDict)

Кто-нибудь сталкивался с подобной проблемой во времявыставлять свою модель ML на Heroku?Я даже не вижу прогноз завершен оператор печати также в журнале Heroku.

1 Ответ

0 голосов
/ 23 сентября 2019

Это происходит потому, что загрузка вашей модели занимает слишком много времени.Можете ли вы рассказать нам больше о размере и модели пули?Эта ошибка возникает, когда общий поток вашей модели занимает более 30 секунд для визуализации страницы.Можете ли вы поделиться Procfile и app.py, чтобы увидеть, на что это уходит?Попробуйте удалить ненужные библиотеки, если они есть в файле.

...