当前位置:   article > 正文

手把手教你搭建属于自己的GPU深度学习环境_gpu环境搭建

gpu环境搭建


想要学习人工智能,那么使用GPU加速自己的深度学习训练是必不可少的,但很多初学者都被环境搭建这一步困扰!安装并配置这些东西真的是比编程还难,过程中遇到各种问题,然后去搜解决方法,但都五花八门,可能因为每个人遇到的问题的具体情况不同,所以即使按照别人的方法也还是会出现问题。

这里,我将自己在整个过程中遇到的问题以及注意事项记录下来,也算是进行一个整理,也希望可以帮助到一些人,来教大家从头搭建属于自己的深度学习环境。
其实这里主要要注意的就是各种版本的对应问题

1. Anaconda的简介、安装及配置

1.1 Anaconda简介

Anaconda是开源的python发行版本,里面包含了python、conda(一个python包管理器)和各种用于科学计算的包,可以完全独立使用,不再额外下载Python。

使用anaconda有以下好处:

  • 屏蔽了系统平台的差异,解决底层依赖。安装一个包之后依赖的东西全部处理好,省心。
  • 有一个虚拟环境的概念,每个环境之间是隔离的,都可以设定不同的python版本以及各种包,不和系统的冲突,可以随便切换,要删除也是整个一起清理。

1.2 Anaconda安装

1.2.1 安装包的下载

先去Ananconda官网(https://www.anaconda.com/)上下载安装包,但是由于某些原因,可能下载速度特别慢,所以可以去清华镜像源进行下载(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/),我这里下载的为2021.05月的版本,下载时还要注意系统版本!
在这里插入图片描述

1.2.2 软件安装

安装过程基本如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里注意修改安装位置,默认在C盘
在这里插入图片描述
这里建议两个都选,第一个意思是添加环境路径,建议可以选上
在这里插入图片描述
在这里插入图片描述
安装完成之后直接点击 next 就好了
在这里插入图片描述
这里两个勾都不要,属于是没啥必要的步骤
在这里插入图片描述
安装完成,我们从电脑的开始菜单中可以找到如下三个快捷方式:
在这里插入图片描述
分别是 Anaconda的 启动快捷方式管理员命令行窗口命令行窗口,我们可以将其发送个快捷方式到桌面上(主要是 Anaconda的 启动快捷方式 和 命令行窗口,图中红框的两个),方便以后使用。

其实用的最多的还是命令行窗口(Anaconda Prompt),因为启动anaconda并且在里面进行切换环境等操作真的太慢了,使用命令行就会快很多,并且方便很多

1.2.3 补充:Anaconda新建环境默认被放到C盘中的问题

最近发现新版本的Anaconda会默认把新建环境放在C盘下(以前是默认放在安装目录下的),简单说一下解决办法:
命令行窗口(Anaconda Prompt)使用下面的命令可以看到:

conda config --show
  • 1

在这里插入图片描述
环境默认的文件夹第一个确实在C盘。
(1)在C:\User\用户名文件夹下找到.condarc文件在这里插入图片描述
(2)用记事本打开并添加如下内容,设置环境安装的默认路径

envs_dirs:
  - D:\\Anaconda3\\envs  # 新的环境保存位置
  • 1
  • 2

在这里插入图片描述

PS:为Anaconda添加的镜像源在这里也能看到的

保存,再次试一下创建环境即可。
如果修改成功,创建新环境时,environment location应当显示的是新设置的路径,如下图:
在这里插入图片描述
(3)如果环境位置没有切换,查看一下目标路径的文件夹的权限,并修改权限即可。
在这里插入图片描述

参考:修改conda环境安装路径,解决环境默认安装在C盘问题

1.3 Anaconda使用操作简介

1.3.1 软件的简单操作介绍

我们打开Anaconda软件,其主界面如下,我们一般主要会用到里面的两个交互式的编程软件(Notebook和Spyder),我个人用的比较多的是Notebook,下面也会以这个为例进行讲解。
在这里插入图片描述
之前已经介绍过,Anaconda中可以创建多个互不干扰、相互独立的环境,图中的①表示当前所使用的编译器环境,由于刚刚安装,所以这里还只有一个base环境,②中可以查看使用Anaconda安装Python包等东西时所使用的网址链接,③表示Notebook软件,点击launch即可打开,④是Spyder软件,通过⑤和⑥可以在主页面环境页面中切换。
环境页面具体介绍如下:
在这里插入图片描述

1.3.2 Notebook简单的操作介绍

在Anaconda里通过点击Notebook的launch 或者 直接在 命令行窗口(Anaconda Prompt)中输入命令jupyter notebook 即可打开Notebook。注意,不同环境下的Notebook需要先激活到对应环境下才可以打开对应的Notebook
在这里插入图片描述
因为Notebook是基于web设计的,所以会自动打开电脑浏览器,并打开一个页面
在这里插入图片描述

1.4 Anaconda的一些配置

1.4.1 为Anaconda添加国内镜像源

如果我们要在Anaconda里下载包等东西,因为他默认的下载路径在国外,所以速度特别慢,还容易断,为了解决这个问题,我们可以为他添加国内的镜像源地址。
打开 Anaconda Prompt ,输入如下命令添加镜像源,这里添加的是中科大的镜像源:

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
  • 1

运行后,就会为Anaconda添加镜像源路径。这时,我们打开Anaconda,可以看到 channels 里已经有我们添加的这条路径了(也可以在Anaconda软件里手动添加,但我每次添加都会有问题,所以放弃了)
在这里插入图片描述

再列出一些其他的镜像源地址:
中科大:https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
清华:https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free

1.4.2 Notebook默认工作路径的修改

我们的程序编写等都是在Notebook的这个网页里进行的。
在这里插入图片描述
但我们会发现,这里已经显示有文件夹了(每个人显示的文件可能不一样,但都是已经有文件在里面了),看起来非常的不爽,这是因为现在它使用的是Notebook的默认路径,所以我们可以对其进行修改。

(1)找到并打开 Anaconda Prompt,输入如下命令,然后执行。

jupyter notebook --generate-config
  • 1

在这里插入图片描述
执行后会生成一个配置文件(jupyter_notebook_config.py)并在窗口中输出文件的路径,找到并打开生成的配置文件(其实这里的C:\Users\Administrator就是Jupyter notebook的默认路径)
在jupyter_notebook_config.py中找到并修改如下配置项(大概在385行左右):

修改前: # c.NotebookApp.notebook_dir = ‘’
在这里插入图片描述
修改方法:删除前面的 # 号,在后面的单引号里输入要设置的目录路径,保存关闭。
注意:这里的路径中的 ‘\’ 要换成 ‘\\’ 或 '/’,否则可能出现转义字符 在这里插入图片描述

(2)在win开始菜单中找到jupyter notebook快捷图标,鼠标右键>>属性>>快捷方式>>目标
删除最后的 “%USERPROFILE%/” ,最后点击确定。
在这里插入图片描述
OK,现在重新启动Notebook,打开的就是刚配置的目录。里面啥也没有,看着很舒服!
在这里插入图片描述
到这里,Anaconda的安装及主要使用基本都介绍了,还有一些环境的新建会在下面的GPU环境搭建中一起介绍。

2. GPU深度学习环境的搭建

深度学习主要有两种库tensorflowpytorch,下面会一一介绍。为使其互不打扰,我们新建两个环境并分别会将其安装在两个环境中(个人建议搭建深度学习之类的环境可以单独创个环境搭建,不要搭建在base环境或其他已有的环境中,这样的话,如果环境搭建失败了,直接将这个环境删掉就好了,不会影响到其他的环境)

2.1 安装CUDA和cuDNN

要使用GPU加速,首先就要去安装CUDA和cuDNN。
首先要看一下你的电脑的显卡对应的是哪个版本的CUDA,千万不要下错了,不然运行不了的。
查看方法很多,网上都很容易搜得到,这里介绍其中一种:
打开 NVIDIA控制面板 -> 帮助 -> 系统信息->组件,就可以查看自己的显卡对应哪个版本。我电脑的是GTX 965M,对应的是CUDA9.0
在这里插入图片描述
找好对应的版本后,就去下载,给出网址:https://developer.nvidia.com/cuda-toolkit-archive
进去后选择相应的版本和电脑信息。这里选择本地安装,也就是将安装包下下来,在线安装容易受网络影响。这个网址没有被墙,可以正常访问,下载速度也是可以的。
在这里插入图片描述

下载CUDA的同时,来看一下cuDNN吧。这个也要注意版本的对应。给出网址:https://developer.nvidia.com/rdp/cudnn-download
下载这个时要先进行注册什么的,按照要求进行就可以了。进去后,每个版本的cuDNN后面都会写明其对应的CUDA版本(网上也搜得到其对应的关系),选择相应的版本下载就好了。
在这里插入图片描述
下载完成之后,就可以开始安装了。

安装CUDA
启动exe文件,会让你选择一个目录地址,这个只是文件的解压目录,并不是安装的目录,在安装完成之后会被自动删除,这里根据自己的情况选一下就好了。然后就会自动检测系统兼容性什么的,完成之后,就可以正式的安装了。
在安装时,选择自定义安装的方法。然后勾选,只要不勾选里面的 Visual Studio Integration 就好了,至于为什么,我暂时也不知道,反正我第一次安装时只勾选了CUDA,然后就出问题了。
在这里插入图片描述
点击下一步,就会选择安装路径,这里网上说建议安在C盘,所以我也就没有改(注意不要选到你刚刚的解压文件夹里了,不然安装完成后又会被删掉,就尴尬了)。这里最好记住这里的三个路径,后面会用得到。
在这里插入图片描述
然后点击下一步,让它安装就好了。

安装完成之后,就安装cuDNN,这个很简单,是插入式安装。把文件解压,然后把里面的三个文件夹里的文件(注意,是文件)复制到CUDA安装文件夹(就是上面的 CUDA Development 的那个安装路径下)的对应文件夹内。
在这里插入图片描述
在这里插入图片描述
到这里,就安装完了,可以测试一下是否安装成功。

进入到上面的安装文件夹下的 extra/demo_suit 文件夹(如:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite)下,然后在地址栏输入 cmd,打开命名提示行。运行 bandwidthTest.exedeviceQuery.exe ,结果如下,得到两个 PASS,就基本是安装成功了。
在这里插入图片描述
在这里插入图片描述
到这里,CUDA和cuDNN就算是全部安装成功了。

2.2 安装tensorflow-gpu深度学习库

这里又得要注意版本了。

首先,根据自己的 CUDA 和 cuDNN 找到自己的 tensorflow-gpu 版本。对应关系如图或tensorflow官网

注意:这里除了CUDA和cuDNN的版本,还要注意 python的版本,比如我的最高只支持到3.6。我开始就没有注意,结果一堆问题,搞得想砸电脑!!!

在这里插入图片描述

那如果我们的base等环境下的python版本过高怎么办?
不要急,我们创建一个新的环境就可以了,并且对于深度学习等环境的搭建也最好新建一个环境来操作,这样可以避免各个环境之间的干扰!

2.2.1 创建一个新的环境

创建新环境有两种方法:

  • 使用 anaconda 命令行窗口
  • 直接在anaconda软件里

这里先介绍第一种方法,第二种在pytorch的安装里介绍

现在就来创一个python3.6的环境。
打开anaconda的命令提示窗口Anaconda Prompt (anaconda3) ,输入:

conda create --name tf-gpu-py36 python=3.6
  • 1

其表示: 创建一个名为tf-gpu-py36的环境,指定Python版本是3.6
如果中途断了,重新运行就好了,会接着下
其实环境名字建议起的简明易懂,比如这里的tf-gpu-py36, 表明是 tensorflow-gpu的环境,且python版本为3.6

运行,系统就会开始去解析并且创建环境。解析完成之后,会出来一个 package plan ,并询问是否继续,这就是我们创建这个新环境所需要下载的包,直接输入 y 回车,让它下载并创建环境,你只需要耐心等待即可。
在这里插入图片描述
下载完成后,就会自动创建环境,完成之后。我们也可以在 anacodna 的environments里看到这个环境。可以看到,这个环境很干净,只有一些python必要包,其余的都没有。
在这里插入图片描述

接下来,我们按照他给出的命令提示激活环境,进入这个环境
在这里插入图片描述

# 激活环境:
conda activate tf-gpu-py36
# 离开环境
conda deactivate
  • 1
  • 2
  • 3
  • 4

激活环境后,在命令行前面会有一个当前所处环境的表明,如图,激活前是base环境,激活后进入到了tf-gpu-py36环境
在这里插入图片描述
现在这里,就是一个全新的环境了

可以确定一下当前的python版本。
注意:这里的 V 大写
在这里插入图片描述

更多的关于anaconda环境管理的,可以参考这个:https://www.jianshu.com/p/2a628a462e87

Notebook的安装

创建好环境后,打开anaconda软件,进入环境,因为这是一个新环境,所以notebook之类的也都没安装,所以我们进行手动安装,直接点击 install 即可
在这里插入图片描述
因为我们添加了镜像源,所以安装起来还算是比较快的,安装完后,install 就变成 launch 了。
打开notebook,就可以直接使用了。

注:所有环境的notebook的工作路径应该是一样的,如果你出现两个环境的notebook工作路径不一样(有的人电脑会出现这种情况),那就按照前面的1.2.5 notebook默认路径的修改进行修改。
注意:

  • 在进行生成配置文件前,可以先激活进入到你需要配置的notebook的环境中
  • 在对notebook 的快捷方式的属性进行删除操作时,不要选错了快捷方式,因为你现在相当于安装了多个notebook,每一个都会有一个快捷方式的,如;
    在这里插入图片描述

到这里,创建python3.6的新环境就基本OK了!

2.2.2 tensorflow-gpu的安装

对tensorflow-gpu,在Anaconda Prompt (anaconda3)里使用 pip 安装并且指定安装版本(不指定的话,会默认安装最新版的,这就可能跟你的CUDA等不对应了)。
这里是用的是清华大学的镜像源:https://pypi.tuna.tsinghua.edu.cn/simple。我这里按照对应关系,安装的1.12.0。

pip install --upgrade tensorflow-gpu==1.12 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 1

因为pip使用的默认路径也是国外的,所以也要用镜像源
其他镜像源:
清华:https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣:http://pypi.douban.com/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple/

安装tensorflow-gpu时,还会自动下载一些相应依赖,所以要稍微等待一下下。安装完成之后,可以用 pip list 看一下是否有这个模块。

到这里,基本就可以使用GPU了,给几个例子试试:

(1)看看 tensorflow 检测到的 能使用的设备情况

# 检测 tensorflow 能使用的设备情况
from tensorflow.python.client import device_lib

#os.environ["CUDA_VISIBLE_DEVICES"] = "1"  # 这个可以指定使用哪个设备
print(device_lib.list_local_devices())
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
如果不能使用GPU,就不会输出GPU的型号和算力。

(2)输出是否能使用GPU

import tensorflow as tf

print(tf.test.is_gpu_available())
print(tf.test.gpu_device_name()) #输出gpu的名称
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
返回了True,也就是可以使用GPU,并且设备名字也跟上面得到的结果相同。

(3)使用tensorflow-gpu
说了这么多,能够直接使用tensorflow-gpu让GPU进行计算才是王道。

import tensorflow as tf
import os
import numpy as np

# 加载数据集
# from keras.datasets import mnist
# (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
# 这里加载数据集要去访问一个网址进行下载,由于众所周知的原因,这个网址是访问不了的
# 所以这里使用下载下来的本地数据集。
# 链接:https://pan.baidu.com/s/1rzqWrlsO7Zg2gtmCxYQZjA
# 提取码:ff9z
path='./mnist.npz'
f = np.load(path)
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']
f.close()

x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test,  y_test, verbose=2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

在这里插入图片描述
可以看到,训练数据时,GPU1(也就是我的NVIDIA显卡)被使用了。这里数据的训练不是很复杂,所以利用率也不是很明显。
到这里,你就已经取得阶段性胜利了!!!

2.2.3 keras的安装

如果你安装的是tensorflow 2.x 版本的,那就不需要安装keras了,因为keras已经被tensorflow收购了!

这里同样也要注意版本
版本对应关系见:https://docs.floydhub.com/guides/environments/
部分如图:
在这里插入图片描述
找好版本后(我对应的是图中的红框框,所以下载的keras2.2.4),同样使用 pip 安装并且指定安装版本,不指定的话,会默认安装最新版的,这就可能跟你的tensorflow-gpu不对应了,一般会显示你的tensorflow版本过低,需要安装高版本!
安装完成后,试试import keras ,如果程序没有报错,那就安装成功了!大功告成!!!

2.3 安装pytorch深度学习库

pytorch的安装没有tensorflow那么繁琐。
同样,我们新创建一个环境来安装,这里使用第二种方法

2.3.1 创建一个新的环境

首先打开anaconda软件,进入到environment,点击create来创建新环境,在弹出的窗口中输入名字并选择python版本
在这里插入图片描述
最后点击create并耐心等待,创建成功后就会又有一个新环境,对这个环境,同样按照2.2.1 创建一个新的环境里的方法去安装notebook
在这里插入图片描述

2.3.2 pytorch的安装

这里再介绍一种离线安装包的方法,避免在线安装时文件下载到一半掉线!
先去https://download.pytorch.org/whl/torch_stable.html下载对应版本的pytorch安装包,对应方式见下图,或者也可以直接去官网寻找
在这里插入图片描述
下载完成后,打开Anaconda Prompt (anaconda3) , 进入到安装 pytorch的环境,输入命令:

pip install 你的pytorch安装包地址(注意‘\’改成 ‘\\’或‘/’)
# 如:
# pip install E:\\Downloads\\torch-1.1.0-cp36-cp36m-win_amd64.whl
  • 1
  • 2
  • 3

等待安装完成后,可以测试一下。

import torch
x = torch.rand(5, 3)
print(x)
  • 1
  • 2
  • 3

这段代码的输出应该与下面的结果接近:
在这里插入图片描述
同样,也可以直接检测是否能用GPU

import torch
torch.cuda.is_available()
  • 1
  • 2

如果输出为True,则表示可以使用GPU。大功告成!!!

3. 其他的一些介绍

3.1 anaconda文件目录简介

找到anaconda的安装文件夹,如我的D:\Anaconda3
(1)这个文件夹下的文件就是base环境中的文件,在这个文件夹下,有个python.exe的可执行文件,它就是base环境下的python解释器

因此,我们如果想要在Windows的cmd窗口中直接运行python,则需要将这个文件夹路径添加到系统环境变量path

(2)在该文件夹中的\Lib\site-packages文件夹下存放的就是我们自己通过pip等方式安装的包
(3)在该文件夹中的envs\文件夹中,存放的就是我们新创建的环境的文件,如我们上面新建了两个环境,那么这里就会有这两个环境的文件夹。这两个文件夹中的目录结构和base环境的基本相同,这也说明了不同环境之间是 相互独立 的。
在这里插入图片描述

3.2 Windows中的cmd窗口和Anaconda Prompt (anaconda3)窗口的区别

  • 一般情况下,所有与Anaconda相关的命令操作都只能在Anaconda Prompt (anaconda3)中完成,如果在Windows的cmd窗口中运行,则会报错不是一个可执行的命令。当然,通过下面第三条的方法,可以解除限制。
  • 通过在系统环境变量的path中添加python解释器的文件路径,就可以在cmd中实现运行Python相关命令,如 pip,但是通常这里所有的操作都是在base环境下的,不能切换环境
  • 在Anacodna安装文件夹下,有一个Scripts文件夹,将这个文件夹路径添加在 系统环境变量的path中,就可以在 Windows中的cmd窗口 中执行一些 conda 命令。一般安装Anaconda时会默认自动添加。

当我们在cmd中运行命令时,其实就是运行的对应的exe可执行文件,而系统就是通过环境变量中path下的文件路径来搜寻这些exe文件的。
如 我们运行一个python文件,我们会输入命令python 文件名.py,这个时候,系统会对path下的路径进行搜索,寻找python解释器,当通过里面的路径可以找到python.exe时,我们这个文件就可以成功编译运行,否则就会报错不是一个可执行的命令
因此,要想某个命令可以直接在cmd中运行,则需要将其exe文件的路径添加到path中,当然,当我们在cmd中进入到该文件夹中再运行exe文件时,是可以正常运行的。(详细的可以自行搜索,很容易搜到相关的)

3.3 pip和conda命令的区别

pip安装Python包,而conda安装包可以包含用任何语言编写的软件的包。
在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。
而Conda可以直接安装Python包以及Python解释器。conda包不仅限于Python软件,它还可以包含C或C ++库,R包或任何其他软件

3.4 pycharm里使用anaconda配置的环境

  1. 首先,我们将anaconda里的环境添加到pycharm里
    打开pycharm,新建一个项目,然后按图进行选择,将anaconda里的环境添加到pycharm里
    在这里插入图片描述
    在上面点击了步骤2的三个点后,会弹出一个python解释器的添加页面,按照图中步骤选择自己的anaconda安装路径,并找到需要的环境中的 python解释器,也就是python.exe文件
    在这里插入图片描述
    添加完成之后,就可以选择自己添加的anaconda环境了
    在这里插入图片描述
  2. 除了在创建新项目的时候可以选择环境外,在项目中也可以切换环境。
    在pycharm中,选择File->settings->Python Interpreter,即可选择切换环境。同时,点击旁边的设置(图中黄框位置),也可以按照上面类似的方法去添加一个新的环境。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/226921
推荐阅读
相关标签
  

闽ICP备14008679号