我正在使用基础映像python:3.5-slim-buster
为我的python应用构建docker映像。
我正在Dockerfile
内运行以下命令:
RUN pip install --no-cache-dir -r requirements.txt
,其在需求文件中具有torch
库。
构建图像后,图像的大小为2.29 GB
。但是,如果我在需求文件中构建不带火炬的图像,则只有约900 MB。
当我手动运行图像并检查容器内部时:
火炬(/usr/local/lib/python3.5/site-packages/torch
)目录为1.3GB
。
因此,即使我进行了多阶段构建并尝试从中复制内容
/usr/local/lib/python3.5/site-packages
换成新图像,我想它不会对我有帮助。
是否有其他标准的优化实践可以帮助我减小图像尺寸?
答案 0 :(得分:1)
假设您想从pytorch
(通常是神经网络)中获得某种训练有素的模型,则实际上应该使用多级Docker构建,如下所示(至少是IMO):
照常编写脚本,包括所需的所有依赖项。训练您的模型,并使用torchscript的torch.jit.script
将其保存为工件。
使用C ++编写推理代码加载网络并编译源代码(使用libtorch
)。
复制上一步中的二进制文件并将其作为Docker的入口点,因此您可以将其作为一次性神经网络在容器中运行。