生产中的最小(轻量版)PyTorch 和 Numpy 包

Minimal (light version) PyTorch and Numpy packages in production

我正在将模型投入生产,我需要预先通过 [=16] 扫描所有依赖项(PytorchNumpy) =]VeraCode 扫描.

我注意到大部分缺陷来自 Pytorch 和 numpy 中的测试脚本和 caffe2 模块。

有什么方法可以 build/install 只有我在我的应用程序中使用的这些包的一部分吗? (例如,我不会在应用程序中使用测试和 caffe2,因此不需要在我的 PyTorch / Numpy 源代码中使用它们)

1。 PyInstaller

您可以使用 pyinstaller 打包您的应用程序。此工具将您的应用程序与 Python 和依赖项打包在一起,并仅使用您需要的部分(简化,实际上很难准确跟踪您的包,因此也会捆绑其他一些东西)。

此外,您可能会遇到一些怪癖和解决方法,以使其与 pytorchnumpy 一起使用,因为这些依赖项非常重(尤其是 pytorch)。

2。仅使用 PyTorch

numpypytorch 在功能方面非常相似(因为 PyTorch 试图与之兼容)因此也许你只能使用它们来进一步简化整个事情

3。使用 C++

根据您应用程序的其他部分,您可以使用 PyTorch's C++ frontend 在 C++ 中编写它(至少是神经网络),它自 1.5.0 发布以来一直稳定。

走这条路将允许您静态编译 PyTorch 的 .cpp 源代码(因此所有依赖项都被链接),这允许您相对较小的二进制大小(30Mb 与 PyTorch 的 [=19] 相比=]), 但需要大量的工作。