1.前言:现在做深度学习的朋友们往往都需要同时掌握pytorch和tensorflow两种深度学习框架,一般科研领域还是用pytorch多一些,当时工程上tensorflow的用户也不容小觑,这就导致github上许多优秀的项目都是基于tensorflow的,并且一些优秀的开源项目也是基于这个深度学习框架的。但是1.x版本的tensorflow和2.x版本的tensorflow的安装方法不同,前者需要安装英伟达编译的tensorflow版本,这里我们主要介绍2.x版本的tensorflow版本,这个更新,更快。
2.安装教程
tensorflow1.x版本的安装教程,这里我也推荐两个资源,如有需要,请查阅高算力显卡安装1.x版本的tensorflow
好的,接下来进入主题,安装Tensorflow-gpu2.X版本的深度学习环境。
2.1 首先是基础环境的准备:需要到anaconda官网下载anaconda软件并且安装,具体的安装步骤很简单,请看我的另一篇推送的开始部分安装anaconda的教程,记得手动添加那些环境变量。
2.2 建立针对该版本的虚拟环境:每个人在学习DL的过程中会碰到很多各种各样的环境,如果全部都在base环境中实现,那基本上是不可能的事(环境依赖库数量特别庞大且容易版本冲突,这是Python的通病,容易版本冲突导致bug),所以必须为每个不同的项目建立不同的虚拟环境,它们之间彼此独立不会互相干扰。关于虚拟环境的建立,请看我这篇推送的第二部分更换国内下载源以及建立虚拟环境
部分朋友可能没有梯子,所以更换国内的下载源是有必要的,查看当前源的命令行:
pip config get global.index-url
建议更换为清华的,用下来感觉更稳定,命令为:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
创建虚拟环境环境的命令行为:
conda create -n your_name jupyter notebook python==3.9
上述的your_name可以替换为你想要的任何名字,但得是英文,比如(Tensorflow_env)。jupyter notebook 代表安装jupyter notebook库,这方便后续在vscode中使用jupyter进行代码运行,一般建议同时安装,方便可视化代码运行。python==3.9代表指定安装Python3.9版本。
运行该命令行后,会让你选择y/n,你输入y回车就可以
2.3 安装cuda和cudnn:找到NVIDIA控制面板->帮助->系统信息->组件看一下CUDA版本,我的12.2是目前最新的,一般向下兼容。
打开tensorflow官网,查看不同版本的tensorflow和cudnn,cuda的版本适配情况
这里cuda的最高版本只更新到了11.2, tensorflow_gpu的最高版本也只更新到了2.6.0,所以大家
可以初步选择安装最新的tensorflow-gpu2.6.0+python3.9+CUDA11.2+cuDNN8.1套餐
接下来比较重要的一步就是先用conda search
找找当前源下的CUDA与cuDNN有没有我们要的版本,如果没有对应包或者版本的话可以试试换镜像源,换几个总会有的。命令行为:
conda search cuda
初步结果显示,在清华镜像源里,目前cuda的最低版本是11.3
我们切换成中科大镜像试试,结果也是如此,此外还尝试了阿里云和豆瓣,最低也均是11.3
此外,我们在清华镜像源中搜索cudnn
conda search cudnn
这里我提供一种在4090显卡上可靠的搭配: tensorflow-gpu2.10.1+python3.9+CUDA11.3+
cuDNN8.2.1,这个配置实测是没有问题的。
解答一个疑问,为什么这里要查看当前镜像源中拥有的cuda和cudnn 的版本,因为下面我们要安装这两个库(需要匹配),进入虚拟环境,安装cudatoolkit和cudnn:
activate your_env_name
conda install cudatoolkit=11.3.0
conda install cudnn=8.2.1
下载tensorflow_gpu2.10.1
pip install tensorflow-gpu==2.10.1
安装部分必要库
pip install protobuf
pip install numpy
pip install scikit-learn
pip install matplotlib
好了,到此为止,tensorflow_gpu2.10.1深度学习环境就配置完成了,你可以用以下代码来检验是否安装成功:
import tensorflow as tf
import sys
# 检查是否有可用的 GPU
gpus = tf.config.list_physical_devices('GPU')
if gpus:
print("GPUs are available")
else:
print("No GPUs found")
# 输出 TensorFlow 版本
print("TensorFlow version:", tf.__version__)
# 输出 Python 版本
print("Python version:", sys.version)