在尝试减小 Docker 映像的大小时,我注意到
pip install torch
增加了几 GB。其中很大一部分来自[...]/site-packages/nvidia
。由于我没有使用 GPU,所以我不想安装 nvidia
的东西。
这是一个最小的例子:
FROM python:3.12.5
RUN pip install torch
(忽略
-slim
基础图像,因为这不是重点。)
最终尺寸:
FROM python:3.12.5
-> 1.02GB
RUN pip install torch
-> 8.98GB
RUN pip install torch && pip freeze | grep nvidia | xargs pip uninstall -y
代替 -> 6.19GB
。虽然最后一点减少了最终大小,但所有 nvidia 内容仍然下载并安装,这会花费时间和带宽。
那么,如何在没有nvidia的情况下直接安装
torch
?
使用
--no-deps
不是一个方便的解决方案,因为我想安装其他传递依赖项。
当然,我可以明确列出每一个,但是查看使用
torch
安装的软件包列表
mpmath
typing-extensions
sympy
nvidia-nvtx-cu12
nvidia-nvjitlink-cu12
nvidia-nccl-cu12
nvidia-curand-cu12
nvidia-cufft-cu12
nvidia-cuda-runtime-cu12
nvidia-cuda-nvrtc-cu12
nvidia-cuda-cupti-cu12
nvidia-cublas-cu12
networkx
MarkupSafe
fsspec
filelock
triton
nvidia-cusparse-cu12
nvidia-cudnn-cu12
jinja2
nvidia-cusolver-cu12
torch
我想避免手动维护此列表,因为它会随着未来版本的
torch
而改变。
正如 pytorch.org 的入门页面(迂回地)记录的那样,PyPI 上的 Torch 已启用 Nvidia;对仅 CPU 轮使用
download.pytorch.org
索引:
RUN pip install torch --index-url https://download.pytorch.org/whl/cpu
还请记住指定 Torch 的某种锁定版本,例如
RUN pip install torch~=2.4.0 --index-url https://download.pytorch.org/whl/cpu