Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 04.10.2018
Сообщений: 4

Хранение обученной модели в памяти

04.10.2018, 16:40. Показов 1608. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет
Пробуем использовать встроенную в SQL Server возможность запуска Python скриптов в целях машинного обучения

Все ок, кроме скорости. Документация Microsoft предлагает хранить обученную модель в таблице как код, полученный сериализацией модулем _pickle. И каждый раз при использовании модели этим же модулем десериализовывать.
pickle.loads занимает больше 2 секунд. Каждый запуск SQL процедуры запускает новый процесс python, потом закрывает его.

Как можно организовать хранение обученной модели в памяти?
На stackoverflow нашел рекомендацию развернуть приложение flask и хранить в ней десериализованные модели. Но как к ним обращаться из другого процесса python, понять не могу. Помогите разобраться плиз
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2018, 16:40
Ответы с готовыми решениями:

Стек, куча, хранение в памяти, динамическое выделение памяти, указатели в чем отличие?
Здравствуйте. Прочитал кучу определений но никак не пойму вообще что к чему. 1)Стек - это якобы кусок оперативной памяти который...

Как реализовать хранение заданных цветов в модели
Доброго времени суток, необходимо реализовать вывод доступных цветов для товара следующего вида: Как это можно реализовать в модели?

Интерфейс к обученной нейросети
Добрый день! Подскажите, пожалуйста, каким образом осуществить следующую процедуру: есть страница с полями для ввода, пользователь...

4
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
05.10.2018, 11:36
tdn680000, попробуйте mongodb, и списки словарей

Добавлено через 38 секунд
на ssd или в оперативке - будет быстро

Как вариант, еще sqlite3 в оперативной памяти
1
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
05.10.2018, 15:18
Цитата Сообщение от tdn680000 Посмотреть сообщение
Каждый запуск SQL процедуры запускает новый процесс python, потом закрывает его.
Если так - вероятно, много времени уходит на запуск процесса. Тогда логичный выход - держать процесс в памяти постоянно.

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

Также сомнительно, что pickle тут оптимален. Он же там "под капотом" создаёт объекты. Если ваша модель в виде keras, то у него своя процедура save-load, based on hdf5, должно работать быстрее.

Добавлено через 4 минуты
Цитата Сообщение от tdn680000 Посмотреть сообщение
На stackoverflow нашел рекомендацию развернуть приложение flask и хранить в ней десериализованные модели.
flask - это, грубо говоря, про передачу http-запроса в питон и ответа обратно. Хранением он не занимается. Теоретически, пойдёт в качестве реализации вышеописанного предложения постоянно крутящегося процесса, но возможно, будет слишком "далеко" от клиента.
1
0 / 0 / 0
Регистрация: 04.10.2018
Сообщений: 4
05.10.2018, 15:34  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
В любом случае, требуется проверка, определите время работы собственно процедуры десериализации и сравните с временем работы процесса.
2 секунды занимает именно pickle. я неправильно выразился, говоря что процесс закрывается. процессы остаются висеть какое-то время. но десериализация все равно выполняется при каждом запуске процедуры. код без pickle выполняется почти мгновенно.
Цитата Сообщение от dondublon Посмотреть сообщение
Если ваша модель в виде keras, то у него своя процедура save-load, based on hdf5, должно работать быстрее.
модель catboost. Там тоже есть свой метод сохранения, но выполняется так же долго.

Думаю, лучше все же отказаться от этой затеи с SQL server. И развернуть отдельный веб-сервер на том же Flask.
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
05.10.2018, 15:45
Цитата Сообщение от tdn680000 Посмотреть сообщение
Думаю, лучше все же отказаться от этой затеи с SQL server. И развернуть отдельный веб-сервер на том же Flask.
либо postgresql + django (если нужно работать с интерфейсами то + vuejs)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.10.2018, 15:45
Помогаю со студенческими работами здесь

Хранение в памяти массива
В описании функции для передачи 2-мерного массива указывается ( int a ). Когда мы задаём как аргумент функции одномерный массив, скобки в...

Хранение массива в памяти
Здравствуйте, уважаемые программисты. Такой вопрос, в C++ массив храниться на непрерывном участке памяти, причём имя массива является...

Хранение функции в памяти
Как я понял при написании функции она должна хранится в памяти, вопрос: при вызове функции все вычисления происходят в той же области...

Хранение графа в памяти
Здравствуйте, можно ли в случае неориентированного графа убрать половину матрицы смежности так, чтобы не сбилась индексация? необходимо...

Хранение данных в памяти
Допустим мы жадные буржуи и не хотим, чтобы нашей программой пользовались на халяву, поэтому у нас есть ключи для регистрации. Но при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru