Минимальные (облегченная версия) пакеты PyTorch и Numpy в производстве - PullRequest
0 голосов
/ 27 апреля 2020

Я запускаю модель в производство, и мне необходимо заранее просканировать все зависимости ( Pytorch и Numpy) с помощью VeraCode Scan .

Я заметил, что большинство fl aws происходят из тестовых скриптов и модулей caffe2 в Pytorch и numpy.

Есть ли способ собрать / установить только часть этих пакетов, которая Я использую в своем приложении? (например, я не буду использовать тестирование и caffe2 в приложении, поэтому нет необходимости иметь их в моем исходном коде PyTorch / Numpy)

1 Ответ

2 голосов
/ 27 апреля 2020

1. PyInstaller

Вы можете упаковать свое приложение, используя pyinstaller. Этот инструмент упаковывает ваше приложение с Python и зависимостями и использует только те части, которые вам нужны (упрощенно, на самом деле сложно точно проследить ваш пакет, поэтому некоторые другие вещи также будут связаны).

Также вы можете Нужны некоторые причуды и обходные пути, чтобы заставить его работать с pytorch и numpy, поскольку эти зависимости довольно тяжелые (особенно pytorch).

2. Используйте только PyTorch

numpy и pytorch очень похожи по функциям (так как PyTorch пытается быть совместимым с ним), следовательно, вы можете использовать только те из них, которые еще больше упростят все это

3. Используйте C ++

В зависимости от других частей вашего приложения вы можете написать его (по крайней мере, нейронную сеть) на C ++, используя Интерфейс C ++ PyTorch , который стабилен с момента выпуска 1.5.0.

Пройдя по этому маршруту, вы сможете статически скомпилировать исходный код PyTorch .cpp (поэтому все зависимости связаны), что позволяет использовать сравнительно небольшой двоичный размер (30Mb по сравнению с 1GB+ в PyTorch), но требует большого количества Работа.

...