Size: a a a

Natural Language Processing

2020 January 19

VR

Vladimir R in Natural Language Processing
источник

VR

Vladimir R in Natural Language Processing
источник

AD

Alfredo Diezo in Natural Language Processing
Всем привет
Мб кто подскажет, как выходить из такой ситуации. В проекте есть 2 функции: одна использует модель от deeppavlov, другая USE от tensorflow
Со второй удобно работать на версии tf 2.0.0. Но вот deeppavlov при запуске своей модели насильно сносить tf 2.0.0 и ставит 1.14.0

Как лучше их "совместить" в одном проекте?
источник

RI

Roman Inflianskas in Natural Language Processing
Alfredo Diezo
Всем привет
Мб кто подскажет, как выходить из такой ситуации. В проекте есть 2 функции: одна использует модель от deeppavlov, другая USE от tensorflow
Со второй удобно работать на версии tf 2.0.0. Но вот deeppavlov при запуске своей модели насильно сносить tf 2.0.0 и ставит 1.14.0

Как лучше их "совместить" в одном проекте?
2 отдельные программы и общение через stdin/stdout? Микросервисы?
источник

AD

Alfredo Diezo in Natural Language Processing
А в одном проекте никак?
источник

ck

cnstntn kndrtv in Natural Language Processing
Попробовать перенести DeepPavlov на новый tf - тебе же возможно не нужна вся их обвязка. Может быть они уже начали работать над новой версией - можно уточнить на их форуме, или в канале ODS.
источник

ck

cnstntn kndrtv in Natural Language Processing
Но это долгий путь. Короткий - отдельные сервисы.
источник

RI

Roman Inflianskas in Natural Language Processing
cnstntn kndrtv
Но это долгий путь. Короткий - отдельные сервисы.
Мы уже с @aldiezo обсудили в личке, как проще будет сделать)
источник

ck

cnstntn kndrtv in Natural Language Processing
@rom_inf, Нам расскажи, может тоже пригодится
источник

AD

Alfredo Diezo in Natural Language Processing
Да, наверное, я попробую отдельными сервисами
источник

AD

Alfredo Diezo in Natural Language Processing
Поковырялся я в загрузчиках модели dp — по-моему, лучше не трогать)
источник

AD

Alfredo Diezo in Natural Language Processing
Это просто самый серьёзный конфликтующий участок был — помимо него много других мест
Поэтому вариант с разными окружениями действительно в разы привлекательнее
источник

ck

cnstntn kndrtv in Natural Language Processing
В DP много лишнего, имхо. Куча ненужных библиотек. Идеально их использовать для прототипа, а потом - повторять всё без их обвязки. Вроде те же TF, Sklearn.
источник

RI

Roman Inflianskas in Natural Language Processing
cnstntn kndrtv
@rom_inf, Нам расскажи, может тоже пригодится
Ок, я не уверен, что я сталкивался именно с такой задачей (под виндой, как у автора), но если речь идёт о "поиграться", то проще всего сделать два виртуальных окружения (каждый под свою часть задачи, которая связана с определённой либой), потом запускать из одного места нужный Python интерпретатор со скриптом. Данными обмениваться через stdin/stdout. Можно использовать стандартный subprocess, можно какой-нибудь plumbum, к примеру, чтобы было проще.
источник

ck

cnstntn kndrtv in Natural Language Processing
Кстати, если например Elmo грузить через tf-hub - течет память, а в DeepPavlov все сделали правильно - этот кусок кода у них позаимствовал. Но копаться в этом конечно долго
источник

RI

Roman Inflianskas in Natural Language Processing
Делать микросервисы в данном случае — overkill, ИМХО.
источник

RI

Roman Inflianskas in Natural Language Processing
Можно ещё использовать pyinstaller, чтобы зашить интерпретатор и либы в один бинарь, тогда будет чище выглядеть и переносимее.
источник

RI

Roman Inflianskas in Natural Language Processing
Но это только если он справится со всеми либами (иногда бывает, что не справляется).
источник

ck

cnstntn kndrtv in Natural Language Processing
@rom_inf спасибо, интересно, не знал про plumbum
источник

RI

Roman Inflianskas in Natural Language Processing
Для виртуальных окружений в винде я использую miniconda, а под GNU/Linux, OS X — pyenv. Да, можно обойтись более простыми (встроенными) средствами, но иногда бывает, что и версии Python не пересекаются, а вышеупомянутые инструменты позволяют эту проблему решать.
источник