我们在码头集装箱中部署了PyTorch模型,它将码头集装箱的大小大幅度增加了1G以上。
但是当我们部署模型的时候,训练已经完成了,所以从技术上讲,我们不需要包括参与训练的机器。
我们甚至不需要反向传播,我们只需要运行神经网络来获得输出。
是否可能只包括执行神经网络的PyTorch (或另一个完全不同的产品)的一部分,而不包括其他任何东西?所以部署是重量轻的。
发布于 2020-05-10 06:26:04
有一件事值得尝试,那就是创建一个精益版本的Pytorch,它只满足您的需要。我为AWS Lambda层做了一些类似的事情,下面是我能够删除的内容(这是针对Pytorch 1.1的,之后可能发生了变化):
find . -type d -name "tests" -exec rm -rf {} +
find . -type d -name "__pycache__" -exec rm -rf {} +
rm -rf ./{caffe2,wheel,pkg_resources,boto*,aws*,pip,pipenv,setuptools}
rm ./torch/lib/libtorch.so
rm -rf ./torch/test如果这还不够,您需要研究使用ONNX或TorchScript/torch.jit。ONNX将模型导出到二进制protobuf文件。TorchScript将其导出为可以在C++环境中运行的序列化形式。
https://datascience.stackexchange.com/questions/72606
复制相似问题