Docker部署GPU版DNN时pip安装torch指定版本失败求助
解决CUDA 10.1环境下Docker安装PyTorch 1.4.0失败的问题
核心问题分析
报错显示找不到torch==1.4.0的匹配版本,主要原因有两个:
- requirements.txt中
-f参数的写法不符合pip规范,导致无法正确识别PyTorch的专属镜像源 - 未明确指定对应CUDA 10.1的PyTorch包索引,pip默认源中没有老版本的CUDA兼容包
解决方案步骤
1. 修正requirements.txt内容
将原文件修改为以下格式,明确指定CUDA 10.1对应的PyTorch包索引:
--extra-index-url https://download.pytorch.org/whl/cu101 pandas matplotlib swig torch==1.4.0 torchvision==0.5.0
注:
--extra-index-url会让pip从指定的额外源查找包,cu101对应CUDA 10.1的专属包仓库,避免从默认源找不存在的版本。
2. 确保Docker基础镜像匹配
使用NVIDIA官方的CUDA 10.1开发镜像作为基础,同时保证Python版本与PyTorch 1.4.0兼容(支持Python 3.6~3.8),示例Dockerfile如下:
# 选择带CUDNN的CUDA10.1基础镜像,Ubuntu18.04对应Python3.6/3.7 FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 # 安装Python和依赖工具 RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ python3-pip \ && rm -rf /var/lib/apt/lists/* # 设置pip源加速(可选) RUN pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 复制requirements.txt到容器 COPY requirements.txt /tmp/requirements.txt # 安装依赖 RUN pip3 install --no-cache-dir -r /tmp/requirements.txt # 设置工作目录,后续复制你的代码 WORKDIR /app
3. 验证安装正确性
构建镜像后,运行容器并执行以下命令验证PyTorch是否识别GPU:
python3 -c "import torch; print(torch.cuda.is_available())"
输出True则说明GPU支持正常。
额外注意事项
- 不要使用Python 3.9及以上版本,PyTorch 1.4.0不兼容这些新版本Python
- 确保Docker已配置NVIDIA Runtime(需安装nvidia-docker2),否则容器无法访问GPU资源
内容的提问来源于stack exchange,提问作者Hami
相关产品推荐
相关产品推荐

