ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【DL】搭建属于自己的GPU深度学习环境

2022-01-10 22:58:48  阅读:249  来源: 互联网

标签:DL 环境 gpu CUDA 版本 tensorflow GPU 安装 搭建


搭建属于自己的GPU深度学习环境

一、GPU深度学习环境的搭建

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

1.1安装CUDA和cuDNN

下载CUDA和cuDNN
要使用GPU加速,首先就要去安装CUDA和cuDNN。
首先要看一下你的电脑的显卡对应的是哪个版本的CUDA,千万不要下错了,不然运行不了的。
查看方法很多,网上都很容易搜得到,这里介绍其中一种:
打开 NVIDIA控制面板 -> 帮助 -> 系统信息->组件,就可以查看自己的显卡对应哪个版本。我电脑的是GTX 1050,对应的是CUDA10.1
在这里插入图片描述
找好对应的版本后,就去下载,给出网址:https://developer.nvidia.com/cuda-toolkit-archive
进去后选择相应的版本和电脑信息。这里选择本地安装,也就是将安装包下下来,
在这里插入图片描述
先查看对应CUDA下需要下载cuDNN的版本(注意自己python版本的匹配):https://tensorflow.google.cn/install/source_windows
然后下载对应版本的cuDNN(绕过Nvidia官方要求的注册或登陆步骤直接下载cuDNN的方法),给出网址:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse51b
在这里插入图片描述
安装CUDA
启动exe文件(在安装CUDA时候最好选用以管理员身份运行),会让你选择一个目录地址,这个只是文件的解压目录,并不是安装的目录,在安装完成之后会被自动删除,这里根据自己的情况选一下就好了。然后就会自动检测系统兼容性什么的,完成之后,就可以正式的安装了。
在安装时,选择自定义安装的方法。然后勾选,只要不勾选里面的 Visual Studio Integration 就好了
在这里插入图片描述
然后安装位置可以选择默认在C盘(网上说建议安在C盘),也可以自定义是设置安装路径。(注意不要选到你刚刚的解压文件夹里了,不然安装完成后又会被删掉)。这里最好记住这里的三个路径,后面会用得到。
在这里插入图片描述
然后点击下一步,让它安装就好了(可能会时间比较长,要耐心等待)。
安装cuDNN
安装完成之后,就安装cuDNN,这个很简单,是插入式安装。把文件解压,然后把里面的三个文件夹里的文件(注意,是文件)复制到CUDA安装文件夹(就是上面的 CUDA Development 的那个安装路径下)的对应文件夹内。
在这里插入图片描述
在这里插入图片描述
到这里,就安装完了,可以测试一下是否安装成功。
进入到上面的安装文件夹下的 extra/demo_suit 文件夹下,然后在地址栏输入 cmd,打开命名提示行。运行 bandwidthTest.exedeviceQuery.exe ,结果如下,得到两个 PASS,就基本是安装成功了。
在这里插入图片描述
在这里插入图片描述
至此,CUDA和cuDNN已经算是全部安装成功了。

1.2安装tensorflow-gpu深度学习库

这里又得要注意版本了。

首先,根据自己的 CUDA 和 cuDNN 找到自己的 tensorflow-gpu 版本(注意:这里除了CUDA和cuDNN的版本,还要注意 python的版本,比如我CUDA是10.1,cuDNN是7.6,那么我的python版本最高只支持到3.8)tensorflow官网
在这里插入图片描述
那如果我们的base等环境下的python版本过高怎么办?
不要急,我们创建一个新的环境就可以了,并且对于深度学习等环境的搭建也最好新建一个环境来操作,这样可以避免各个环境之间的干扰!

1.2.1创建一个新的环境

创建新环境有两种方法:

1.使用 anaconda 命令行窗口
2.直接在anaconda软件里
这里先介绍第一种方法,第二种在pytorch的安装里介绍

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

conda create --name tf-gpu-py38 python=3.8

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

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

# 激活环境:
conda activate tf-gpu-py38
# 离开环境
conda deactivate

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

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

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

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

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

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

运行后,就会为anaconda添加镜像源路径。这时,我们打开anaconda,可以看到 channels 里已经有我们添加的这条路径了(建议不要在anaconda软件里手动添加,会有问题)
在这里插入图片描述

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

1.2.2 tensorflow-gpu的安装

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

pip install --user --upgrade tensorflow-gpu==2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

这里也可以使用conda命令(我是用的是这个命令,建议使用这个):
conda install --user --upgrade tensorflow-gpu==2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

因为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())

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

import tensorflow as tf

print(tf.test.is_gpu_available())
print(tf.test.gpu_device_name()) #输出gpu的名称

在这里插入图片描述
返回了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='F:\DL\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)
结果:
Epoch 1/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3028 - accuracy: 0.9122
Epoch 2/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.1414 - accuracy: 0.9579
Epoch 3/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.1067 - accuracy: 0.9676: 0s - loss:
Epoch 4/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0849 - accuracy: 0.9737
Epoch 5/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0733 - accuracy: 0.9780
313/313 - 1s - loss: 0.0762 - accuracy: 0.9761
[0.07618406414985657, 0.9761000275611877]

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

1.2.3keras的安装

这里我是要找tensorflow-gpu 2.3版本对应的keras的版本,但是一直没有找到,所以干脆就直接使用命令来进行安装了,幸运的是安装后测试成功了。
安装命令:

conda install keras

安装后使用import keras,并没有报错,然后使用带有keras的代码进行测试,也没有报错,并且运行成功,所以大功告成!安装成功!!!
安装后可以从Anaconda\pkgs这个路径下找到keras,查看版本。我的是keras2.4.3
在这里插入图片描述

注意:

  • 最好去查找自己需要的那个版本的keras,不指定的话,会默认安装最新版的,这就可能跟你的tensorflow-gpu不对应了,一般会显示你的tensorflow版本过低,需要安装高版本!
  • 安装完成后,试试import keras ,如果程序没有报错,那就安装成功了。

1.3 安装pytorch深度学习库

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

1.3.1 创建一个新的环境

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

1.3.2 pytorch的安装

方式一:
这里再介绍一种离线安装包的方法,个人建议pytorch可以用离线的方法安装,因为包太大了,在线容易下到一半掉线!先去https://download.pytorch.org/whl/torch_stable.html下载对应版本的pytorch安装包,对应方式见下图,或者也可以直接去官网寻找
这里torchversion版本应该是0.8.2,图片中的版本和我需要的不一样,但是各个框所代表的意义是一样的。
在这里插入图片描述
下载完成后,打开Anaconda Prompt (anaconda3), 进入到安装 pytorch的环境,输入命令:

pip install D:\\software\\DL\\Pytorch\\torchvision-0.8.2-cp38-cp38-win_amd64.whl

之后等待安装完成就行了。之后可以进行测试(具体测试可以看方式二中的测试过程)。
方式二(我采用的方式):
pytorch官网根据自己的CUDA版本去找对应的安装版本以及语句。下面是我的:
在这里插入图片描述
然后就先激活pytorch环境pytorch-py38,然后执行语句conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch 等待安装成功即可。
在这里插入图片描述
在这里插入图片描述
等待安装完成后,可以测试一下。
测试一:

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

在这里插入图片描述
代表安装成功。
测试二:
直接检测是否能用GPU

import torch
torch.cuda.is_available()

在这里插入图片描述
如果输出为True,则表示可以使用GPU。大功告成!!!

标签:DL,环境,gpu,CUDA,版本,tensorflow,GPU,安装,搭建
来源: https://blog.csdn.net/weixin_47274607/article/details/122381473

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有