目录
操作过程--python3.9,pytorch1.9.0【该版本遇到tensorflow问题没有解决办法,就转而下载了--python3.8,pytorch1.7.1,CUDA保持不变】
操作过程Anaconda--python3.9,pytorch1.10.0【不要安装 TensorFlow】
另外,上述第三个操作过程是本人又下载了Anaconda操作的,以下问题内容的解决方法是参考上述第一个操作过程,对其他版本相同问题也可参考。
降低Pillow版本解决DLL加载失败问题//解决“DLL load failed while importing _imaging 找不到指定的模块”错误
需要先下载CUDA(需要选对版本,可看下面的【电脑的CUDA版本】),此处不再详述
需提前下载miniconda,下载过程不再说
本人电脑支持CUDA10.2
操作过程--python3.9,pytorch1.9.0【该版本遇到tensorflow问题没有解决办法,就转而下载了--python3.8,pytorch1.7.1,CUDA保持不变】
conda --version
#创建虚拟环境
conda create -n pytorch python=3.9
conda info --envs
#激活
conda activate pytorch
#修复 NumPy 版本冲突,再进行下一步(不修复会在验证环节import torch这句代码出错)
conda install numpy=1.23.5 -c conda-forge
#配置pytorch
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 -c pytorch
#DLL 加载失败问题解决(看下面详解)
pip install pillow==8.3.1 --force-reinstall
验证是否安装成功
import torch # 如正常则静默
a = torch.Tensor([1.]) # 如正常则静默
a.cuda() # 如正常则返回"tensor([ 1.], device='cuda:0')"
from torch.backends import cudnn # 如正常则静默
cudnn.is_acceptable(a.cuda()) # 如正常则返回 "True"
操作过程--python3.8,pytorch1.7.1【该版本解决了tensorflow问题,遇到tensorflow用这个,安装tensorflow的同时会更新numpy版本,此时pandas版本在运行代码时会与numpy产生冲突,所有就需要根据numpy版本找到适合pandas的版本(一般是降低版本)】
conda --version
#创建虚拟环境
conda create -n pytorch171 python=3.8
conda info --envs
#激活
conda activate pytorch171
#配置pytorch
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 -c pytorch
#NumPy:可以选用 1.19.5 版本,它能和 PyTorch 1.7.1 兼容
conda install numpy==1.19.5
#通过conda安装失败,你可以尝试使用pip来安装tensorflow 2.4.0
pip install tensorflow==2.4.0
#通过pip来安装指定版本的 Pillow8.3.1【记得添加系统环境变量 】
pip install pillow==8.3.1 --force-reinstall
#根据numpy版本找到适合pandas的版本
conda install pandas==1.2.4
验证是否安装成功
import torch # 如正常则静默
a = torch.Tensor([1.]) # 如正常则静默
a.cuda() # 如正常则返回"tensor([ 1.], device='cuda:0')"
from torch.backends import cudnn # 如正常则静默
cudnn.is_acceptable(a.cuda()) # 如正常则返回 "True"
操作过程Anaconda--python3.9,pytorch1.10.0【不要安装 TensorFlow】
#) 创建并激活虚拟环境
conda create -n pytorch python=3.9
conda activate pytorch
#安装 PyTorch 和相关包
# 使用 conda 安装 PyTorch + CUDA 10.2
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch
试试下面这个版本
conda install numpy=1.23.5 -c conda-forge
# 修复 Pillow 版本
pip install pillow==8.3.1 --force-reinstall
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)
from PIL import Image
print(Image.__version__)
经过上述三个操作过程的安装,发现TensorFlow容易 与numpy和pandas发生版本冲突,安装tensorflow的同时会更新numpy版本,此时pandas版本在运行代码时会与numpy产生冲突,所有就需要根据numpy版本找到适合pandas的版本(一般是降低版本)。
另外,上述第三个操作过程是本人又下载了Anaconda操作的,以下问题内容的解决方法是参考上述第一个操作过程,对其他版本相同问题也可参考。
修复 NumPy 版本冲突
-
降级 NumPy 到 1.x 版本
在激活的pytorch
环境中执行:
conda install numpy=1.23.5 -c conda-forge
-
选择
1.23.5
是因为它是 PyTorch 1.9 兼容的稳定版本。 -
如果提示依赖冲突,直接允许 Conda 解决冲突。
-
验证 NumPy 版本
conda list numpy
输出应为:
numpy 1.23.5 py39h7a0a035_0 conda-forge
查看所有环境列表:
conda env list
验证Pytorch
进入你的虚拟环境,输入conda list:
conda list
如果有Pytorch说明安装成功:
未安装CUDA时有的NVIDIA,不能删
电脑的CUDA版本
在cmd中运行nvidia-smi
降低Pillow版本解决DLL加载失败问题//解决“DLL load failed while importing _imaging 找不到指定的模块”错误
失败过程
"""
第1个方法--失败
"""
# 完全重建环境(耗时约5-10分钟)
conda create -n pytorch python=3.9 pytorch=1.9.0 torchvision=0.10.0 torchaudio=0.9.0 cudatoolkit=10.2 -c pytorch -c conda-forge
conda activate pytorch
conda install -c conda-forge pillow=8.4.0
"""
第二个方法--失败
"""
# 创建新环境(使用 conda-forge 通道)
conda create -n pytorch python=3.9 pytorch=1.9.0 torchvision=0.10.0 torchaudio=0.9.0 cudatoolkit=10.2 -c conda-forge -c pytorch
# 激活环境
conda activate pytorch
# 安装 Pillow(推荐最新版)
conda install -c conda-forge pillow
解决办法:
原因:DLL 加载失败可能是因为 Python 无法找到 _imaging.pyd
的路径
-
检查路径下是否存在
-
例如:
D:\Miniconda\envs\pytorch\Lib\site-packages\PIL\_imaging.pyd
。
-
-
如果文件缺失,重新安装 Pillow。
操作步骤
-
找到
_imaging.pyd
的路径D:\Miniconda\envs\pytorch\Lib\site-packages\PIL\_imaging.pyd
。 -
将该路径添加到系统环境变量
-
右键
此电脑
→属性
→高级系统设置
→环境变量
→系统变量
→PATH
→编辑
→新建
→ 粘贴路径。
-
-
在miniconda上运行pip install pillow==8.3.1 --force-reinstall
pip install pillow==8.3.1 --force-reinstall
检测代码
import torch
print(torch.__version__) # 应输出 1.9.0+cu102
print(torch.cuda.is_available()) # 应输出 True
print(torch.version.cuda) # 应输出 10.2
from PIL import Image
print(Image.__version__)
-
重启 PyCharm 生效。
清理缓存
conda clean --all
删除虚拟环境
conda remove -n pytorch --all
退出python命令
exit()