Yolov7 docker 镜像大小超过 6GB/问题

问题描述 投票:0回答:1

我正在构建一个 Docker 镜像,我想将其存储在 ECR(AWS) 上。我对 yolomodel 的期望是仅将图像作为输入,并使用 YOLOv7-pose 获取预测的姿势关键点集作为输出。

以下内容位于 docker 中的

requirements.txt
:

boto3==1.20.23
boto3-stubs == 1.21.0
aws_lambda_typing==2.9.2
requests==2.25.1
protobuf==4.25.3
pytz == 2023.3
torch == 2.0.1
opencv-python == 4.9.0.80
dateTime == 5.4
pybase64 ==1.3.2
ultralytics ==8.1.0
typing-extensions == 3.7.4.3

这就是我将其导入的方式

application.py
:

import cv2
import numpy as np
import boto3
import base64
import json
import torch
import math 
import pytz
from ultralytics import YOLO
from datetime import datetime

之前我使用 mediapipe 做同样的事情,这导致我的 docker 大小只有 500MB。

amazon-web-services docker yolo amazon-ecr yolov8
1个回答
0
投票

图像被 Python 包夸大了:

234076  ./nvidia/cusparse/lib
234416  ./nvidia/cusparse
235296  ./nvidia/nccl/lib
235344  ./nvidia/nccl
274220  ./nvidia/cufft/lib
274300  ./nvidia/cufft
368104  ./nvidia/cusolver/lib
368384  ./nvidia/cusolver
473492  ./nvidia/cublas/lib
473908  ./nvidia/cublas
880240  ./nvidia/cudnn/lib
880696  ./nvidia/cudnn
1252564 ./torch/lib
1359700 ./torch
2647496 ./nvidia

🗎

Dockerfile

FROM python:3.8.0-slim

COPY requirements.txt .

RUN pip3 install -r requirements.txt

图像大小为 7.7 GB,仅

/usr/local/lib/python3.8/site-packages
目录就有 4.8 GB。

我正在检查图像尺寸:

docker inspect  -f "{{ .Size }}" <image-name> | numfmt --to=si

使用

--no-cache-dir
将缩小图像的尺寸。

🗎

Dockerfile

FROM python:3.8.0-slim

COPY requirements.txt .

RUN pip3 install --no-cache-dir -r requirements.txt

图像的大小现在为 5.3 GB。

但是,当我尝试使用原始问题中的代码加载包时,我遇到了缺少依赖项的问题。

所以我回到了第一原则并简化了

requirements.txt

boto3==1.34.55
ultralytics==8.1.0

通过这些依赖项,可以构建映像并加载包。

由于我们没有为所有其他软件包指定特定版本,因此仅选择它们与

boto3
ultralytics
兼容,这似乎会导致持续更大的占用空间。例如,我们得到 2.2.1 版本的
torch

94432   ./nvidia/curand/lib
96536   ./nvidia/curand
189712  ./nvidia/cusolver/lib
189796  ./nvidia/cufft/lib
189876  ./nvidia/cufft
189992  ./nvidia/cusolver
214328  ./nvidia/nccl/lib
214392  ./nvidia/nccl
258688  ./nvidia/cusparse/lib
259000  ./nvidia/cusparse
347436  ./triton/_C
428852  ./triton
608716  ./nvidia/cublas/lib
609300  ./nvidia/cublas
1155416 ./nvidia/cudnn/lib
1155880 ./nvidia/cudnn
1442728 ./torch/lib
1556592 ./torch
2877384 ./nvidia

您可能可以摆弄这些软件包的特定版本,但似乎不太可能将图像减小到 500 MB。

抱歉,我知道这并不是一个真正的“答案”。但也许有一些有用的东西。

© www.soinside.com 2019 - 2024. All rights reserved.