Ubuntu20.4下安装TensorFlow2.x

Ubuntu20.4下安装TensorFlow2.x

基本配置
系统:Ubuntu20.04
显卡:GTX 960M

1、显卡驱动安装

首先检查一下系统配置,使用uname -a查看系统版本

$ uname -a
Linux bing-Lenovo-Y50p-70 5.15.0-58-generic #64~20.04.1-Ubuntu SMP Fri Jan 6 16:42:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

使用lspci查看所有硬件列表

$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)
08:00.0 Network controller: Intel Corporation Wireless 3160 (rev 93)
09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
0a:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5249 PCI Express Card Reader (rev 01

当然,你也可以点击右上角,选择的Settings,查看找到最后一项About,查看基本配置

Ubuntu20.4下安装TensorFlow2.x_第1张图片这里,我们可以使用nvidia-smi命令直接查看显卡

$ nvidia-smi 
Sun Feb  5 16:09:29 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.78.01    Driver Version: 525.78.01    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   35C    P8    N/A /  N/A |      8MiB /  2048MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       888      G   /usr/lib/xorg/Xorg                  2MiB |
|    0   N/A  N/A      1483      G   /usr/lib/xorg/Xorg                  2MiB |
+-----------------------------------------------------------------------------+

检查一下显卡驱动

$ nvidia-detector 
nvidia-driver-525

关于如何安装Ubuntu的显卡驱动,这里推荐我在前面写的另外一篇文章,点这里

2、安装CUDA

前往官网选择CUDA的版本

Nvidia cuda 官网 https://developer.nvidia.com/cuda-toolkit-archive

这里需要如何选择呢?

我们可以从下向上开始选型,在从上向下安装环境,比如:先确定需要的TensorFlow版本,确定cuDNN的版本,再确定CUDA的版本,而Nvidia的版本选择最新的或者系统推荐的版本。

Nvidia驱动:选用高版本的(甚至是最新的驱动)
CUDA版本:较低版本的CUDA
cuDNN版本:与你的CUDA版本对应
TensorFlow版本:与CUDA及cuDNN对应

首先我们前往官网,这里我们选择cuda Toolkit 11.8的版本,根据提示选择自己需要系统,如下所示:

Ubuntu20.4下安装TensorFlow2.x_第2张图片

这里需要注意,如果选择最新的CUDA版本,有可能没有对应的cuDNN版本哦。

生成下载安装的命令,如下所示:
Ubuntu20.4下安装TensorFlow2.x_第3张图片
我们逐一执行安装命令,如下所示:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

注意,如果你之前安装过其他更新版本的cuda,重新下载执行上面的命令后,可能安装的还是安装之前的那个版本,所以,在安装前,可以检查一下本地缓存的cuda包:

#查看缓存中有的cuda版本
$ sudo apt-cache madison cuda
cuda |   12.0.0-1 | file:/var/cuda-repo-ubuntu2004-12-0-local  Packages
cuda |   11.8.0-1 | file:/var/cuda-repo-ubuntu2004-11-8-local  Packages
$ sudo apt-get install cuda=11.8.0-1```

我们测试一下是否安装成功

$ nvcc 
Command 'nvcc' not found, but can be installed with:

sudo apt install nvidia-cuda-toolkit

nvcc还不能执行,提示你需要安装nvidia-cuda-toolkit注意,千万不用安装 ,这里只是环境变量的问题;我们可以查看一下安装目录,如下:

$ cd /usr/local/cuda-11.8/bin
$ ./nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

nvcc的版本是我们期待的11.8,一下步添加环境变量;

vi ~/.bashrc
# 末尾添加如下内容
export PATH="/usr/local/cuda-11.8/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME="/usr/local/cuda-11.8:$CUDA_HOME"

生效环境变量

source ./bashrc

再次测试一下nvcc -v

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

cuda 11.8 安装成功!

3、安装cuDNN

cuDNN版本官网下载 https://developer.nvidia.com/cudnn

进入官网,这里需要输入Nvidia的账号密码,没有密码的话注册一个即可

Ubuntu20.4下安装TensorFlow2.x_第4张图片
选择与CUDA 11.8对应的cuDNN版本Download cuDNN v8.6.0(October 3rd,2022), for CUDA 11.x
Ubuntu20.4下安装TensorFlow2.x_第5张图片我们选择for Linux x86_64(Tar)这个版本下载,下载后

tar zxvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz -C ./cudnn-8.6_cuda11

解压出来我们可以看到
Ubuntu20.4下安装TensorFlow2.x_第6张图片
我们这个库copy到/usr/local目录

sudo mv cudnn-8.6_cuda11 /usr/local/

设置环境变量

vi ~/.bashrc
# 末尾添加如下内容
export LD_LIBRARY_PATH="/usr/local/cudnn-8.6_cuda11/lib:$LD_LIBRARY_PATH"

至此,我们把cuda库及cuDNN库的安装过程手动都走了一遍。
然而,实际上我们将会使用更加简单的方法搭建Tensorflow框架,即使用Anaconda安装,即使前面cuda及cuDNN都不用安装都可以自动为你把整个tensorflow开发环境安装好!(泥马,不早说!)

4、安装Anaconda

安装Anaconda
我们可以通过前往官网下载Anaconda,然而下载非常慢,所有我们选择清华镜像源下载,下载地址 https://mirrors.tuna.tsinghua.edu.cn/

Ubuntu20.4下安装TensorFlow2.x_第7张图片下载完成后,进入下载目录

# 进入donwloads
cd ~/Downloads
# 给执行权限
chmod +x ./Anaconda3-5.3.1-Linux-x86_64.sh 
# 开始安装
$ ./Anaconda3-5.3.1-Linux-x86_64.sh

注意,安装过程中有一系列的交互输入:

Ubuntu20.4下安装TensorFlow2.x_第8张图片
上面这一步,直接回车

Ubuntu20.4下安装TensorFlow2.x_第9张图片上面这一步为阅读许可,我们按Q即可,接着问你是否同意,我们输入yes同意即可,如下所示
在这里插入图片描述
接着,问你安装的路径,我们根据情况,设置安装安装路径即可,也可直接回车,使用默认安装路径,如下所示
Ubuntu20.4下安装TensorFlow2.x_第10张图片
开始安装,安装结束后,还有两个提示

1)是否添加环境变量?输入yes即可
2)是否安装VScode,输入no即可

注意,安装完成后,需要重新启动一个新的终端才可以正常使用conda命令

安装完成后,我们打开一个新终端,验证一下Anaconda

$ conda --version
conda 4.5.11
$ which conda
/home/bing/anaconda3/bin/conda

Anaconda安装好后,我们的python环境也安装好了,我们再测试一下

$ python --version
Python 3.7.0
$ which python
/home/bing/anaconda3/bin/python

5、使用Anaconda搭建TensorFlow环境

前提是安装好显卡驱动及Anaconda之后,我们也可以使用下面的方式,快速tensorflow环境

使用Anaconda搭建更方便,conda可以创建一个虚拟的沙箱环境,所有的依赖版本,包括cuda,cuDnn,python等,都在一个指定环境下安装。

我们设置国内的conda镜像源,编辑.condarc配置文件

# 编译
$ vi ~/.condarc
channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
#  - defaults
show_channel_urls: true
ssl_verify: false

查看conda的设置情况

$ conda config --show

安装tensorflow前,我们先看看可安装的版本

conda serach tensorflow-gpu

tensorflow有cpu版本,还有gpu版本,推荐使用tensorflow的gpu版本

创建一个新的环境tf2,指定某些关键的组件版本

conda create -n tf2 tensorflow-gpu=2.1 python=3.7

安装完成后,tensorflow、cuda、cuDNN、python都安装下来了,其中tensorflow及python是我们规定的版本,其他是自动安装的版本。这一步安装需要比较长的时间

查看所有环境

$ conda env list
# conda environments:
#
base                  *  /home/bing/anaconda3
tf2                      /home/bing/anaconda3/envs/tf2

安装完成tf2虚拟环境后,可以激活该环境,并安装一下pip

# 激活tf2环境
conda activate tf2
# 设置pip国内镜像源
(tf2)$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装ipython
(tf2)$ pip install ipython

这里需要注意这个bug,默认情况下进入tf2下的ipython命令其实是base环境下的命令;我们分别在base环境及tf2环境下,使用which pythonwhich ipython查看,发现两个环境下的ipython路径都一样,这显然不对的;所以我们需要在tf2下,再次安装一下ipython

测试tensorflow及gpu是否正常可用

(tf2)$ ipython
Python 3.7.13 (default, Mar 29 2022, 02:18:16) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.34.0 -- An enhanced Interactive Python. Type '?' for help.

输入如下命令

import tensorflow as tf
tf.test.is_gpu_available()

返回Out[3]: True,表示gpu可用

5、安装PyCharm

前往官网下载PyCharm,下载PyCharm

Ubuntu20.4下安装TensorFlow2.x_第11张图片下载后,解压压缩包,如下
Ubuntu20.4下安装TensorFlow2.x_第12张图片
进入bin目录,右键打开终端,执行pycharm.sh

$ ./pycharm.sh

启动pycharm,我们添加快捷方式到桌面,如下所示
Ubuntu20.4下安装TensorFlow2.x_第13张图片
Ubuntu20.4下安装TensorFlow2.x_第14张图片
输入密码后即可添加到APP应用列表

Ubuntu20.4下安装TensorFlow2.x_第15张图片pyCharm的安装即完成。

你可能感兴趣的:(python,tensorflow,python,cuda,cuDNN)