构建GPU版DNN的Docker镜像时pip依赖报错及GPU环境疑问
问题解决及GPU版DNN依赖说明
一、requirements.txt错误修复
报错核心原因是同一行写入两个依赖包,且参数格式不符合pip要求。修改后的requirements.txt内容如下:
pandas matplotlib swig -f https://download.pytorch.org/whl/cu100/torch_stable.html torch==1.4.0 torchvision==0.5.0
关键说明:
- 每个Python依赖必须单独占一行,禁止将
torch和torchvision写在同一行 -f(或--find-links)参数单独成行,后续依赖会自动使用该源地址
二、Dockerfile中确保pip版本正确
你升级的是本地pip,但Docker构建过程使用的是基础镜像自带的pip,需在Dockerfile中先升级pip再安装依赖:
# 使用匹配CUDA 10.0的官方基础镜像 FROM nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04 # 安装Python基础工具 RUN apt-get update && apt-get install -y python3 python3-pip && rm -rf /var/lib/apt/lists/* # 升级pip到指定稳定版本 RUN python3 -m pip install --upgrade pip==23.1.2 # 复制依赖文件并安装 COPY requirements.txt . RUN python3 -m pip install -r requirements.txt # 后续镜像构建步骤(如复制代码、设置启动命令等)
三、运行GPU版DNN的额外依赖
除Python包外,还需满足以下环境要求:
- 基础镜像必须包含CUDA和cuDNN:不能使用普通Python镜像,需选择NVIDIA官方提供的对应版本CUDA镜像(比如上述
nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04),版本需与PyTorch要求的CUDA版本匹配(这里是cu100对应CUDA 10.0) - Docker环境配置NVIDIA容器运行时:主机需安装对应版本的NVIDIA驱动,同时配置
nvidia-docker2,确保容器能访问GPU硬件 - GPU可用性验证:容器启动后可执行
nvidia-smi命令确认GPU被识别;Python代码中可通过torch.cuda.is_available()验证PyTorch是否能调用GPU
内容的提问来源于stack exchange,提问作者Hami
相关产品推荐
相关产品推荐

