我正在将一个模型投入生产,我需要扫描所有的依赖关系(Pytorch 和 Numpy)事先通过 VeraCode扫描.
我注意到大部分的缺陷来自于Pytorch和numpy的测试脚本和caffe2模块。
有什么办法可以只构建安装我在应用中使用的这些包的一部分吗?(例如,我不会在应用程序中使用测试和caffe2,所以没有必要在我的PyTorch Numpy源代码中使用它们)
你可以使用 pyinstaller
. 这个工具将你的应用与Python和依赖关系打包,只使用你需要的部分(简化,实际上很难准确跟踪你的包,所以一些其他的东西也会被捆绑)。
此外,你可能会遇到一些怪癖和变通方法,使它与 pytorch
和 numpy
因为这些依赖性很重(尤其是 pytorch
).
numpy
和 pytorch
的功能非常相似(因为PyTorch试图与之兼容),因此,也许您可以只使用其中的一个,这样可以进一步简化整个事情。
根据你的应用程序的其他部分,你可能会用C++写它(至少是神经网络),使用的是 PyTorch的C++前端 稳当 1.5.0
发布。
通过这一途径,您可以编译 PyTorch 的 .cpp
源代码静态化(所以所有的依赖关系都是链接的),这让你可以获得相对较小的二进制大小(如30Mb
与PyTorch的 1GB+
),但需要大量的工作。