600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 使用RTX3080显卡搭建基于Pycharm+Python+Cuda+cuDNN+TensorFlow的深度学习开发环境

使用RTX3080显卡搭建基于Pycharm+Python+Cuda+cuDNN+TensorFlow的深度学习开发环境

时间:2020-10-09 11:20:20

相关推荐

使用RTX3080显卡搭建基于Pycharm+Python+Cuda+cuDNN+TensorFlow的深度学习开发环境

本文链接:/tjhyx/article/details/112955582

作为一名新手,也是出于兴趣,我通过查找有关资料,使用RTX3080显卡搭建了基于Pycharm+Python+Cuda+cuDNN+TensorFlow工具的开发环境,也解决了一些问题,希望对刚入门深度学习的新手有所帮助,也欢迎比较懂的朋友多提宝贵意见,相互学习。

一、软、硬件准备

A. 硬件准备

看到标题进来的朋友自然要知道,要搭建基于Pycharm+Python+Cuda+cuDNN+TensorFlow,显卡是必备的,而且必须是NVIDIA的,所以要搭建这样一个环境,自然少不了一块能进行AI开发的显卡,以下是本文使用的配置概览:

操作系统Windows 10 专业版 64位

处理器 英特尔 Core i5-10400F

主板 技嘉 B460 AORUS PRO AC ( LPC Controller B460芯片组 )

主显卡 Nvidia GeForce RTX 3080 ( 10 GB / 华硕 )

内存 64 GB ( 金士顿 DDR4 2666MHz )

主硬盘 三星 SSD 970 EVO Plus 500GB ( 500 GB / 固态硬盘 )

B. 软件准备

1,Pycharm专业版或者社区版。如果有教育邮箱可申请1年免费使用期,社区版需要注册并登录邮箱账号即可免费使用,Pycharm官网下载地址:/pycharm/download/#section=windows,本文使用的版本为PyCharm .3.2 64位专业版。

2,Python软件。需要查看TensorFlow所支持的版本,具体参考TensorFlow官网中GPU版本部分(/install/source_windows#gpu),当确定Python版本后,可前往官网下载:/,本文使用版本为Python3.8 64位,因为TensorFlow目前最新版本为2.4.0,通过查询TensorFlow官网得知,目前支持的Python版本号为3.8。

3,Cuda软件。CUDA下载页面:/cuda-downloads,这里需要提醒的是不一定非要按照TensorFlow官网中对应的Cuda与cuDNN版本下载,后面我再详细介绍如何解决这一问题。本文使用Cuda版本为目前最新版CUDA Toolkit 11.2。

4,cuDNN软件。下载地址:/rdp/cudnn-archive,需要注册账号下载,或者选择对应版本号之后右键下载。本文使用cuDNN版本号为cudnn-11.1-windows-x64-v8.0.4.30。

5,TensorFlow GPU版本软件安装。官网介绍:/install/source_windows#gpu。本文在Pycharm中的安装版本为tensorflow-gpu 2.4.0。

二、开发环境搭建步骤

当准备好以上软硬件之后,以下介绍一下我搭建基于Pycharm+Python+Cuda+cuDNN+TensorFlow的深度学习开发环境的步骤,没有必须,仅供参考。

步骤一:

为了在Pycharm安装完成后能够使用Python解释器,我们首先安装Python,按照第一节提供的网站,我们前往Python官网下载Python3.8版本,如下图所示,我们不是下载最新版的,因此要在Downloads选项卡下,选择“View the full list of downloads”,

点进去之后我们向下选择Python 3.8.7,选择“Download”,点击进入之后,我们拖动页面到最后选择64位版本的下载,并安装。如下图所示。

Python的具体安装步骤这里不再介绍,可参考安装例程,需要注意的是将安装完成的Python添加到环境变量中,如何添加环境变量可参考链接:/tjhyx/article/details/112793144

步骤二:

完成Python安装之后,接下来安装Pycharm软件,前往官网下载最新版,如下图:

安装完成后,打开Pycharm,新建一个项目并保存,之后在“文件”中的"Settings"界面中,我们选择Python3.8作为编译器,其他默认即可,下图是设置好之后的界面:

步骤三:

安装tensorflow-gpu。打开Pycharm,新建一个项目并保存,之后打开“文件”中的"Settings"界面,并点击左下角的“+”号,在弹出的搜索框中输入“TensorFlow-gpu”,并点击左下角“install package”进行安装。

安装完成后如下图:

步骤四:

安装Cuda。通过查阅资料可知,在安装Cuda开发套件之前,最好先安装VS环境,VS的安装这里不再介绍,默认已安装好VS环境。接下来安装cuda_11.1.0_456.43_win10.exe(按说应该是11.2版本,可下载下来之后显示是11.1)。在安装时,需要对安装包先解压然后在执行安装,安装过程中,我们最好选择自定义安装,随后如果出现让安装英伟达驱动之类的可以取消,因为电脑中这些驱动应该是已经装好的,如果电脑之前没装过显卡驱动,当然可以选择。安装完成之后,打开命令窗口,并输入nvcc -V,检查是否已安装Cuda,如果出现如下图所示,表明安装成功。

步骤五:

安装cuDNN。官网下载cudnn-11.1-windows-x64-v8.0.4.30版本之后,将其解压缩,并将其中的bin、include、lib三个文件夹复制并粘贴到Cuda的安装目录下即可,我的路径如下:D:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA\v11.1

三、测试

为了验证本文所搭建环境是可用的,接下来用一个测试例对TensorFlow-gpu进行测试。以下两个例程的下载地址为:链接:/s/1wAdEWXdp6JI9dSEUap9Dsw,提取码:eddc

测试步骤:

测试 1:打开Pycharm,并建立一个工程,本文所建工程名称及路径分别为pythonProject01,F:\PycharmProjects\pythonProject01,随后点击“文件”并新建一个python文件,起名为test1.py,并将以下代码输入其中,如下图所示:

test1.py中的测试代码如下:

import tensorflow as tf;import os;os.environ['TF_CPP_MIN_LOG_LEVEL']='2';a = tf.constant(1.);b = tf.constant(3.);print(a+b);print('GPU:', tf.test.is_gpu_available())

随后,点击右上角绿色运行按钮,执行测试程序,运行完整结果如下:

由以上运行结果发现,结果不对,输出结果中出现GPU:False,表明这个测试程序并没有利用GPU执行,分析运行结果查找原因我发现在运行结果中又这么一段话:

表明cusolver64_10.dll这个文件缺失,难道就是缺少它而引起的结果不对吗?于是我就思考是否把这个文件找到并放到它应该在的文件中就可以解决问题了。于是,我打开Cuda安装目录,查找所有前面已经成功安装扩展文件的位置,找到一个其他的自然也就找到了,我就找cudart64_110.dll这个文件,终于通过在Cuda安装目录下搜索,我发现它所在的目录为D:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin,如下图

其他所用到的几个应用程序扩展文件也都在这个文件夹里面,那么cusolver64_10.dll文件也在里面吗?显然没有,但是,有一个文件名为cusolver64_11.dll的文件,与cusolver64_10.dll文件相比,就是最后一位数变成了1呀,于是我想这个能不能直接把cusolver64_11.dll这个文件名改成cusolver64_10.dll,为了不把源文件替换掉,我将cusolver64_11.dll这个复制并粘贴到这个bin文件夹里,如下,

之后,我将cusolver64_11 - 副本.dll文件名更改为cusolver64_10.dll,再运行test1.py测试程序,结果如下:

运行结果显示,GPU:True,表明此程序是由GPU执行运算的,并且出现“Successfully opened dynamic library cusolver64_10.dll”,表明cusolver64_10.dll文件被成功打开,问题成功得到解决。

测试 2:与测试1中test1中方法一样,我们新建另外一个测试文件test2.py,测试代码如下,目的是比较CPU和GPU的运算速度.

import tensorflow as tfimport timeitwith tf.device('/cpu:0'):cpu_a = tf.random.normal([10000, 1000])cpu_b = tf.random.normal([1000, 2000])print(cpu_a.device, cpu_b.device)with tf.device('/gpu:0'):gpu_a = tf.random.normal([10000, 1000])gpu_b = tf.random.normal([1000, 2000])print(gpu_a.device, gpu_b.device)def cpu_run():with tf.device('/cpu:0'):c = tf.matmul(cpu_a, cpu_b)return cdef gpu_run():with tf.device('/gpu:0'):c = tf.matmul(gpu_a, gpu_b)return c# warm upcpu_time = timeit.timeit(cpu_run, number=10)gpu_time = timeit.timeit(gpu_run, number=10)print('warmup:', cpu_time, gpu_time)cpu_time = timeit.timeit(cpu_run, number=10)gpu_time = timeit.timeit(gpu_run, number=10)print('run time:', cpu_time, gpu_time)

之后,我们选中test2.py,点击鼠标右键执行,如下

运行结果如下所示:

结果中,第一个为CPU运行时间,第二个为GPU运行时间,测试成功。至此,整个开发环境搭建完成。

附:Cuda开发套件中多个应用程序扩展cusolver64_10.dll等文件的下载地址:链接:/s/1pGCKF_y5E5er59Vdje2DFw ,提取码:syif

以上文字与截图均为本人原创,由于知识水平有限,难免存在不足,还请多多指教!

本文链接:/tjhyx/article/details/112955582

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。