一、基于CentOS7构建带有GPU的TensorFlow2.x编码环境

从今天起咱们就算是正式开始学习TensorFlow2.x了,工欲善其事,必先利其器。上篇文章咱们也提到了,为了便于开发,咱们拥有了一台Linux的服务器,而且购置了一块RTX3070的显卡,硬件设备已经到位了,那么咱们今天要做的就是把TensorFlow2.x的编码环境给配置好。关注专栏《一起来学TensorFlow2.x》,解锁更多相关内容~


目录

一、Anaconda的下载与安装

1.1 下载安装包

1.2 运行安装向导

1.3 测试是否安装成功

二、安装NVIDIA独立显卡驱动

2.1 安装基础的依赖环境

2.2 检查内核版本与源码包版本是否一致

2.3 下载并上传NVIDIA驱动包

2.4 安装NVIDIA驱动包

扫描二维码关注公众号,回复: 12501622 查看本文章

2.4.1 关闭图形化界面

2.4.2 安装驱动包

2.4.3 开启图形化界面

2.4.4 测试安装是否成功

三、安装CUDA Toolkit

3.1 下载安装包

3.2 安装CUDA

3.2.1 修改权限

3.2.2 安装

3.2.3 测试安装是否成功

四、cuDNN的安装

4.1 下载安装包

4.2 安装cuDNN

4.2.1 解压

4.2.2 拷贝相应文件

4.2.3 文件赋权

五、安装TensorFlow

5.1 安装TensorFlow

5.2 整体测试

5.3 PyCharm远程调用Python虚拟环境


一、Anaconda的下载与安装

1.1 下载安装包

首先我们需要安装Python,为了方便,我们使用Anaconda3。首先需要去Anaconda的官网下载Anaconda,这里我下载的是Anaconda3-5.0.1-Linux-x86_64.sh,如下所示:

将下载好的安装包上传到Linux对应的目录下:

1.2 运行安装向导

1、通过以下命令运行安装向导:

bash Anaconda3-5.0.1-Linux-x86_64.sh

2、接受下面的协议,一路按回车键

3、直到出现以下内容,选择yes

4、选择安装路径,这里我选择的是默认安装路径,回车即可。

/root/anaconda3

5、接下来需要一段时间进行安装,安装过程中会出现是否添加到环境变量,选择yes。显示如下画面时,表示安装完成。

1.3 测试是否安装成功

1、重启服务器

reboot

2、查看对应的版本

以上就是Anaconda的安装过程,非常简单。接下来便是NVIDIA驱动的安装。

二、安装NVIDIA独立显卡驱动

要想使用咱们的RTX3070显卡。需要首先安装一下显卡驱动。下面一起来看一下如何安装NVIDIA显卡驱动。

2.1 安装基础的依赖环境

这里需要注意的是,并不是所有的用户都需要执行此步,如果已经有了这些依赖的小伙伴,可以直接忽略此步。

yum -y install gcc kernel-devel kernel-headers

2.2 检查内核版本与源码包版本是否一致

1、检查内核版本

ls /boot | grep vmlinu

2、检查源码包版本

rpm -qa | grep kernel-devel

这里值得注意的是:必须保证内核版本与源码包的版本一致,如果不一致,在安装过程中会报错。如果不一致,可以点击此处进行下载。

2.3 下载并上传NVIDIA驱动包

1、首先需要去NVIDIA官网下载相应的驱动包,点击此处跳转NVIDIA官网。填写相关信息,点击搜索,如下所示:

2、点击下载

3、将下载好的驱动包上传到相应的目录,并修改权限:

chmod -R 777 ./NVIDIA-Linux-x86_64-455.45.01.run

2.4 安装NVIDIA驱动包

到了最关键的一步——安装驱动包了,安装之前我找了很多安装的教程,又得屏蔽这个那个,又得重启服务器生效的。可能我胆子比较大,总喜欢挑战一些不可能。也有可能是我运气比较好,总之我是一次安装成功了,来看一下我都干了些啥事吧。

2.4.1 关闭图形化界面

在安装Linux系统的时候,我保留了图形化界面,没有选择最小化安装。如果是最小化安装的朋友们就可以忽略这一步了,直接进行下一步。如果没有最小化安装,在安装NVIDIA驱动包之前需要先关闭图形化界面。命令如下:

systemctl set-default multi-user.target

关闭图形化界面后,重启服务器(reboot)。

2.4.2 安装驱动包

./NVIDIA-Linux-x86_64-455.45.01.run

等待安装完成即可。

2.4.3 开启图形化界面

使用如下命令重新开启图形化界面:

systemctl set-default graphical.target

同样的,需要重启一下服务器。

2.4.4 测试安装是否成功

在终端输入以下命令:

nvidia-smi

如果安装没有问题的话,应该会出现如下界面:

好的,至此,咱们的NVIDIA驱动也已经安装成功了。接下来我们再来看一下CUDA的安装。

三、安装CUDA Toolkit

3.1 下载安装包

1、同样的,我们需要去官网下载对应的安装包,点击这里,跳转官网,点击下载。

2、选择对应的目标平台

然后下方会自动弹出下载步骤:

3、在终端运行以下命令进行下载

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run

3.2 安装CUDA

3.2.1 修改权限

通过以下命令修改安装包的执行权限:

chmod -R 777 ./cuda_11.1.0_455.23.05_linux.run

3.2.2 安装

./cuda_11.1.0_455.23.05_linux.run

安装完成后,屏幕上会出现如下内容:

Please make sure that
 -   PATH includes /usr/local/cuda-10.1/
 -   LD_LIBRARY_PATH includes /usr/local/cuda-10.1/lib64, or, add /usr/local/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root

这是提示我们修改环境变量,在~/.bashrc 文件中添加如下内容:

# add nvcc compiler to path
export PATH=$PATH:/usr/local/cuda-11.1/bin

# add cuBLAS, cuSPARSE, cuRAND, cuSOLVER, cuFFT to path
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64:/root/anaconda3/pkgs/cudatoolkit-11.0.221-h6bb024c_0/lib

3.2.3 测试安装是否成功

在/usr/local/cuda/extras/demo_suite目录下执行如下命令:

./bandwidthTest

如果出现下图内容,说明安装成功:

当然,也可以输入nvcc -V进行查看:

安装完CUDA之后,还需要安装一下cuDNN。深度神经网络库(cuDNN)是经GPU加速的深度神经网络基元库。cuDNN可大幅优化标准例程(例如用于前向传播和反向传播的卷积层、池化层、归一化层和激活层)的实施。

四、cuDNN的安装

4.1 下载安装包

同样的还得需要去官网下载相应的安装包,请点击这里进行下载,需要注意的是,cuDNN需要注册才能下载,下载时需要与cuda的版本相对应。

下载完成后,将tar包上传到对应的目录:

4.2 安装cuDNN

4.2.1 解压

执行以下命令将目录下的tar包解压:

tar -zxvf ./cudnn-11.1-linux-x64-v8.0.5.39.tgz -C ../modules/

4.2.2 拷贝相应文件

按照下面的方式将相应的文件拷贝到cuda对应的目录中:

cp /opt/modules/cuda/include/cudnn.h /usr/local/cuda/include/

cp /opt/modules/cuda/lib64/libcudnn* /usr/local/cuda/lib64/

4.2.3 文件赋权

给对应的文件赋权:

chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

cuDNN到这里就算是安装结束了,它的安装稍微简单些。接下来就是TensorFlow的安装了。

五、安装TensorFlow

5.1 安装TensorFlow

1、首先使用conda新建一个虚拟环境(xzw)

conda create -n xzw

2、进入虚拟环境

source activate xzw

3、安装TensorFlow,这里可以使用conda进行安装,但是它的下载速度真的是令人恶心,所以我这里使用的是pip安装。

pip install tensorflow

这里不用刻意的去安装tensorflow-gpu,直接安装tensorflow即可,当然有版本要求的朋友们可以在安装的时候指定版本,如下:

pip install tensorflow==2.4.0

如果不指定版本,那么它默认安装的就是最新的版本。等待安装完成就可以了,可以使用conda list命令列出所有安装的内容:

 4、使用下面的命令退出虚拟环境

conda deactivate

5、使用下面的命令删除虚拟环境

conda remove -n xzw --all

5.2 整体测试

终于到了整体测试的环节了,既然咱们所有的环境基本上都已经搭建完了,那么就可以进行整体测试了,写一个简单的TensorFlow代码,看看有没有使用GPU来提升代码的运行速度。测试代码比较简单,如下所示:

import tensorflow as tf
from tensorflow.keras import *

(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data(
    path='mnist.npz'
)

network = tf.keras.models.Sequential()
network.add(tf.keras.layers.Dense(512, activation='relu', input_shape=(28 * 28,)))
network.add(tf.keras.layers.Dense(10, activation='softmax'))

network.compile(optimizer='rmsprop',
                loss='categorical_crossentropy',
                metrics=['accuracy'])

train_images = train_images.reshape((60000, 28 * 28))
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype('float32') / 255
train_labels = tf.keras.utils.to_categorical(train_labels)
test_labels = tf.keras.utils.to_categorical(test_labels)

network.fit(train_images, train_labels, epochs=5, batch_size=128)
test_loss, test_acc = network.evaluate(test_images, test_labels)
print('test_acc:', test_acc)

将上面的代码保存到test.py文件中,运行python test.py,同时使用如下命令监控GPU资源:

watch -n 0.1 nvidia-smi

通过上图可以发现,GPU正在加速,证明咱们的环境配置没有问题,终于可以愉快的撸代码了。但是,又有一个问题出现了,在Linux系统上调试代码实在是非常的不方便,于是便有了下面的操作。

5.3 PyCharm远程调用Python虚拟环境

1、点击新建项目

2、添加interpreter

3、输入服务器对应host、port、username等信息,点击next。

4、输入密码

5、找到服务器对应的Python虚拟环境的位置,添加路径。

6、更改项目存储的路径,此路径为在本地编写的代码同步到Linux服务器上的路径,即项目在服务器存放的路径。点击create完成项目创建。

这样的话,就可以在本地进行代码的编写与调试,没问题后在服务器上运行代码,这次是真的可以愉快的撸代码了。

到这,咱们的TensorFlow2.x的代码环境基本上已经搭建完成了,就等着接下来一起学习TensorFlow2.x了,本文到此已经接近尾声了,你们在这个过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了什么问题~

猜你喜欢

转载自blog.csdn.net/gdkyxy2013/article/details/111879288