Как использовать объект Sklearn Pickle, созданный в первом запросе, для всех остальных запросов - PullRequest
0 голосов
/ 04 мая 2018

У меня есть следующий вариант использования в моем проекте - Python. У нас есть система прогнозирования для каждого пользовательского запроса через API (мы используем IIS, нам нужно рассмотреть возможности колб).

Размер файла Pickle огромен, например 700 МБ, я не хочу загружать его для каждого запроса (так как он потребляет больше оперативной памяти для каждого запроса).

Можем ли мы загрузить файл pickle в кэш-память фляги и использовать его для всех запросов? (или же) Можем ли мы обмениваться данными между всеми запросами, чтобы нам не приходилось загружать их снова и снова?

Пожалуйста, помогите с примером реализации совместного использования данных рассола по всем запросам

1 Ответ

0 голосов
/ 04 мая 2018

Вы можете попробовать использовать что-то вроде Flask-Cache и выполнить такую ​​функцию:

@cache.cached(timeout=None)
def get_pickle_object():
    return your_pickle_object

Таким образом, объект pickle будет импортирован только при первом вызове этой функции, а затем будет выгружен из кэша.

Вы также можете вызвать его один раз во время инициализации приложения, чтобы оно уже было загружено для первого запроса.

Тогда каждый раз, когда вам нужен объект, используйте get_pickle_object() вместо самого объекта.

...