我有一个Flask网络应用程序,它将展示一些深度学习模型。
我建立了形象和一切工作正常。
问题是这个图像的大小是5. 58GB!这有点可笑。
我有一些在构建过程中复制的深度学习模型,我认为它们可能是罪魁祸首,但它们的大小加起来不超过300MB
,所以肯定不是。
在检查历史记录和每层的大小时,我发现:
RUN /bin/sh -c pip install -r requirements.txt
占用了771 MB。RUN /bin/sh -c pip install torch==1.10.2
占用了2.8 GB!RUN /bin/sh -c apt-get install ffmpeg libsm6 libxext6
占用了400 MB。
那么我如何合并这些库,同时保持图像大小合理?在python中部署ml模型时,使用这些大小的图像可以吗?
下面是root directory
:
Dockerfile
:
FROM python:3.7.13
WORKDIR /app
COPY ["rdm.pt", "autosort_model.pt", "rotated_model.pt", "yolov5x6.pt", "/app/"]
RUN pip install torch==1.10.2
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6 -y
COPY . /app
CMD python ./app.py
.dockerignore
:
Dockerfile
README.md
__pycache__
1条答案
按热度按时间hgtggwj01#
默认情况下,torch会打包CUDA包和其他东西。如果你不需要CUDA,请在pip安装命令中添加
--extra-index-url https://download.pytorch.org/whl/cpu
和--no-cache-dir
。RUN pip install --no-cache-dir -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu
此外,删除apt列表缓存也是一个很好的做法: