Anaconda同时安装PyTorch和TensorFlow2.x版本教程(Windows + GPU/CUDA)

参照之前用Anaconda同时安装PyTorch和TensorFlow版本教程(Windows + CPU),本文也是个人在2024年8月安装PyTorch和TensorFlow版本(Windows + GPU/CUDA)过程中的笔记,如有错误,请多指正。

  • 安装环境: Windows、Anaconda、GPU/CUDA

  • 安装要求:明确个人对TensorFlow版本的需求,以及保证网络稳定、网速良好

本人也是小白,所以会尽可能细致地做笔记。

一. Anaconda配置新虚拟环境

1. 配置镜像源(非必选)

由于安装不同库时每个人看的教程不同,可能给Anaconda配置了不同的镜像源(即channels),为了保证以下安装流程顺利进行,在网速良好的情况下,可以重置镜像源至默认镜像源。强调网速是因为默认镜像源属于国外的……

首先,在Windows的“开始”界面,找到并以管理员身份运行Anaconda Prompt

重置镜像源至默认镜像源(非必选):

conda config --remove-key channels

查看镜像源:

conda config --show channels

如果窗口内容显示为-default,则重置成功。

查询

2. 配置新虚拟环境

Anaconda默认的虚拟环境名字为base,但为了适应各版本代码需求,通常考虑配置新环境而不是在base里直接安装各种库。

在配置环境之前,需要确认Python版本,因为Python版本将影响Pytorch和TensorFlow。

我选择Python3.9,这个不算很新,跟许多库都适配。如果是安装TensorFlow 2.x版本,Python版本为 3.7 - 3.10 都可以。

conda create -n pytorch python=3.9

该代码中的pytorch是虚拟环境名称(可自行更改,命名要求通常是英文字母和数字的组合,记住即可)。

3. 激活新虚拟环境

activate pytorch

此处pytorch为我设置的虚拟环境名称,需按个人设置进行替换

4. 查看CUDA版本

要安装PyTorch、TensorFlow,必须查看其对应于Python、CUDA的版本,否则会出现不兼容等问题导致安装失败。既然是在CUDA安装,那必须知道自己的CUDA版本!

查询方式有两种,任选其一。

(1)用Anaconda Prompt窗口(推荐)

nvcc --version

查询结果为:

nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:26_Pacific_Standard_Time_2019
Cuda compilation tools, release 10.1, V10.1.105

可以看到当前环境的CUDA为10.1.105,每个人的设备配置不同,接下来的安装指令也可能不一致。

(2)用cmd窗口

此处查询比较特殊,不在Anaconda的Prompt窗口,需要键盘上的Windows键+R键进入cmd:

cmd
在cmd窗口中输入查询指令:

nvcc --version
nvidia-smi

查询结果:

查询结果
表格右上角的CUDA Version:12.2表示当前设备能安装的CUDA最高版本。

5. 安装CUDA和cuDNN

根据博文《Anaconda虚拟环境中安装cudatoolkit和cudnn包并配置tensorflow-gpu》(作者:LiaoKyle)介绍,Windows上的GPU仅适用于2.10或更早的TensorFlow版本。

TensorFlow版本Python版本cuDNNCUDA
2.12 - 2.143.9 - 3.118.6 - 8.711.8
2.8 - 2.113.7 - 3.108.111.2
2.5 - 2.73.6 - 3.98.111.2

省流:能够在GPU上运行的版本列表是:

TensorFlow 2.10
CUDA 11.2
cuDNN 8.1

CUDA版本不是11.2的,可能需要在虚拟环境里重新安装CUDA。

理论上,如果不用GPU来加速算法,即使CUDA版本不对,也能安装TensorFlow,只是在运行时缺少必要的CUDA和cuDNN库而已。

(1)自动安装

查看CUDA包:

conda search cudatoolkit

指定安装CUDA:

conda install cudatoolkit==11.2

查看cudnn包:

conda search cudnn

指定安装cudnn版本:

conda  install cudnn==8.1.0

(2)手动安装

一般来说安装CUDA11.2cuDNN8.1不会那么顺利,血与泪的经验教训啊……老实说上述自动安装步骤我压根没法按流程走,因为查询结果显示当前环境支持的CUDA版本里并不包含11.2,我都要疯了,最后只能手动安装。

安装教程参考博文《CUDA与cuDNN详细安装教程(最新)》(作者:盼盼面包)。由于该博文作者想要的CUDA版本和我的不一致,这里细心贴出链接和版本名称,其他流程一致,不赘诉。

①下载CUDA

CUDA11.2版本:https://developer.nvidia.com/cuda-toolkit-archive

在这里插入图片描述
我选了CUDA Toolkit 11.2.2,其实选哪个都行,毕竟都属于11.2的。点击后会出现更细致的选项,如下图。

在这里插入图片描述
这里的选择分别是: Windowsx86_6410,点击后下载。

②下载cuDNN

cuDNN8.1版本:https://developer.nvidia.com/rdp/cudnn-archive

在这里插入图片描述

这里的选择是截图里的第一个,即cuDNN v8.11 (Feburary, 26th, 2021) for CUDA 11.0, 11.1 and 11.2。总之一定要选到对应CUDA的版本。点击后会出现更细致的选项,如下图。

在这里插入图片描述
系统是Windows,选cuDNN Library for Windows(x86)这一版本进行下载。

剩下的流程请务必参照博文《CUDA与cuDNN详细安装教程(最新)》(作者:盼盼面包),而且需要保持耐心和细心,因为需要修改系统环境变量

6. 查看新配置的CUDA和cuDNN(非必选)

nvcc --version

输出结果:

结果
结果显示Cuda compilation tools, release 11.2, V11.2.152,说明CUDA版本已经切换成功。

二. 安装PyTorch

1. 查看适配的PyTorch版本

个人建议直接通过PyTorch官网查看:https://pytorch.org/

一直往下滑,直到出现这个界面:
PyTorch

可以看到PyTorch官网给出的CUDA版本只有CUDA11.8CUDA12.1CUDA12.4……如果你的版本不是这个,可以点击当前Pytorch界面左下角的Previous Versions of PyTorch查看相应的版本代码。

系统: Windows
语言: Python
其他选项如是Cuda还是pip则取决于个人。

记得复制Run thisCommand一栏给出的安装指令。

2. 安装PyTorch

Pytorch官网给的安装指令能够一次性安装torch、torchvision等,方便快捷。由于我们的CUDA版本是11.2, 官网上给的安装指令只有11.111.3的,因此我用chatGPT查找了相关指令。

安装PyTorch:

conda install pytorch==1.10.0 torchvision==0.11.1 torchaudio==0.10.0 cudatoolkit=11.2 -c pytorch

安装界面:(仅供参考,找不到实装的截图了)

安装
输入y表示确认安装,下载速度依赖于网络。PyTorch的安装包大小合计有2G。

查看Python和PyTorch版本:

python --version
python -c "import torch; print(torch.__version__)"

在这里插入图片描述
也可以通过Conda来查看Python和PyTorch版本:

conda list

该命令是查看当前环境中所有已安装包的版本,其中可以找到pytorch(如下图):

PyTorch

三. 安装TensorFlow

Windows + CPU 里安装TensorFlow的教程里,我写了需要添加清华镜像源。同样地,在Windows + GPU/CUDA 里安装TensorFlow的时候,我也尝试了使用镜像源,配置速度很慢,因此这里我使用的是默认源。如果需要配置镜像源,可以按以下命令来操作:

路径添加清华镜像源(非必选):

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

不论是否指定版本安装,都需要查询当前配置支持的版本。

查询当前配置支持的TensorFlow版本:

conda search tensorflow

查询结果(部分截图):

查询结果
查询结果
可以看到我当前环境支持安装的 TensorFlow 版本最高到2.10.0,怎么说呢,不算很新,能用,但不能让我使用“懒人安装”。

1. 指定TensorFlow版本

介于我当前环境支持的最高版本是2.10.0(本来GPU支持的最高版本也是TensorFlow 2.10),我只能选择指定版本安装。只要系统中正确安装并配置了 CUDA 和 cuDNN,就能使用pip安装TensorFlow。

pip指定安装TensorFlow2.10

pip install tensorflow-gpu==2.10

题外话:这里推荐使用 pip 安装 TensorFlow GPU 版本,没有别的原因,单纯是因为我使用conda安装失败了。以及……千万要记住是tensorflow-gpu而不是tensorflow,不然就要像我需要卸载了重新安装。

安装界面(错误示范,哭了):

pip安装

可以看到截图里我下载的是tensorflow而非tensorflow-gpu,所以后来我卸载了重装,但是本教程里的安装指令是正确的!!!
pip install tensorflow-gpu==2.10
下图展示了tensorflow包的大小,约455.9MB,tensorflow-gpu包也一样大……网速慢的要遭罪了……

下载
安装结束后,可以查询:

python -c "import tensorflow as tf; print('Num GPUs Available: ', len(tf.config.list_physical_devices('GPU')))"

如果输出为Num GPUs Available: 1,那就说明安装的TensorFlow能够在GPU上运行,否则最好检查一下CUDA和cuDNN的版本,因为虽然三者看上去都安装成功了,但版本并不适配。

记住,能够在GPU上运行的版本列表是:

TensorFlow 2.10
CUDA 11.2
cuDNN 8.1

PyCharm的控制台或.py文件查询能否在GPU上使用TensorFlow:

import tensorflow as tf
print(tf.sysconfig.get_build_info()['cuda_version'])  # 查看CUDA,其输出应分别为 64_112
print(tf.sysconfig.get_build_info()['cudnn_version'])  # 查看cuDNn,其输出应分别为 64_8
gpus = tf.config.experimental.list_physical_devices('GPU')  # 列出所有物理设备
if gpus:
    print(f"Available GPU devices: {gpus}")
else:
    print("No GPU available.")
# 其输出应为 Available GPU devices: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

----------------------分割线(●’◡’●)

本教程也贴上conda安装的命令。往好处想,万一有人成功了呢?

conda指定安装TensorFlow2.10.0:(任选其一)

conda install tensorflow-gpu=2.10.0 -c pkgs/main
conda install tensorflow-gpu=2.10.0 -c conda-forge

2. 不指定TensorFlow版本(不推荐)

TensorFlow的官网:https://tensorflow.google.cn

在官网看到当前最新的TensorFlow版本为2.17,如果当前配置支持并且没有指定版本需求的话,可以考虑自动安装,但不推荐,因为GPU适配的版本最高到2.10。既然都考虑使用GPU加速算法了,就别自动安装了吧(超小声)。

安装TensorFlow(任选其一):

conda install tensorflow-gpu -c conda-forge
conda install tensorflow-gpu -c defaults
conda install tensorflow-gpu -c anaconda

这条命令会自动安装适用于 GPU 的 TensorFlow 版本以及其所有依赖项,包括 CUDA 和 cuDNN。该指令下载的TensorFlow 2.x版本比较新。如前所述,我当前环境支持安装的最高版本是2.10.0,因此我使用该指令安装必然是失败的,所以安装过程中会出现依赖关系冲突的问题,即出现以下报错信息:

报错信息
但是!别着急关掉Prompt窗口!Anaconda会自动寻找不出现依赖关系冲突的包并进行测试,如下图所示。

自动安装
如果还是失败了,建议直接指定版本安装。

真是一次酣畅淋漓的安装啊,虽然什么都没做,但还是先辛苦我自己了。

后续会不定时修改该帖子内容,更新安装细节。

有任何疑问欢迎评论区留言或者私信,祝大家都能安装顺利!!!

是的,TensorFlowPyTorch可以共存并在同一项目中使用。虽然它们是两个不同的深度学习框架,但它们都提供了强大的功能和丰富的生态系统。 如果你想同时使用TensorFlowPyTorch,你可以根据需要在不同的部分使用它们。例如,你可以使用TensorFlow构建一个模型,并使用PyTorch进行训练和推理。这种混合使用的方式可以根据你的需求和喜好进行灵活选择。 要在同一项目中使用TensorFlowPyTorch,你需要确保正确安装和配置了两个框架。可以使用pip或conda来安装它们,并按照各自框架的文档进行设置和配置。 在代码中,你需要根据需要导入和使用TensorFlowPyTorch的库和函数。例如,对于TensorFlow,你可以使用`import tensorflow as tf`进行导入,并使用`tf.xxx`的方式调用TensorFlow的函数和类。对于PyTorch,你可以使用`import torch`进行导入,并使用`torch.xxx`的方式调用PyTorch的函数和类。 需要注意的是,由于TensorFlowPyTorch是两个不同的框架,它们的语法和API可能有所不同。在使用时,你需要根据具体框架的文档和示例进行学习和开发。同时,确保你理解每个框架的特性和工作原理,以便正确地使用它们。 总结起来,TensorFlowPyTorch可以在同一项目中共存,你可以根据需要使用它们的功能和特性。这种灵活性使你能够更好地利用两个框架的优势来开发深度学习应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值