文章目录
前言
我们要做哪些工作?
首先我们在这篇文章中要安装的软件有:
- Anaconda
- cuda
- cudnn
需要配置的框架有: - pytorch
- tensorflow
需要安装运行代码的平台有: - pycharm
- jupyter notebook
版本分别是:
安装的这些东西都是啥,什么用?
我第一次接触时也很蒙为啥要装这些东西呢?他们都是干啥的具体有什么用呢?下面记录了一下我的理解
- Anaconda : Anaconda是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。所以Anaconda是我们首先必须安装的软件
- cuda(Compute Unified Device Architecture):中文叫统一计算架构。我们一般电脑都有NVIDIA的显卡驱动程序,CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。
- cudnn(CUDA Deep Neural Network library): 是NVIDIA打造的针对深度神经网络的加速
库,是一个用于深层神经网络的GPU加速库。如果你要用GPU训练模型,cuDNN不是必须的,但
是一般会采用这个加速库。 - tensorflow,pytorch : 这俩都是当下非常流行的深度学习框架,用这框架可以方便我们搭建网络模型,并进行训练,但在训练过程中的要处理的输入数据很多,有时是上万张图片,如果用cpu去跑的话花费的时间太多,所以我们选择是用gpu版本的tensorflow 和pytorch
- pycharm: IDEA开发环境,适合跑很大的项目,有degug功能
- jupyter notebook: 也是用来调试python 代码的IDE, 以网页的形式显示代码和输出结果。
小结: 一切的起因都是要用python,但是它的IDE没有python解释器,所以我们要去下载一个。
Anaconda是比较好的python管理器,所以推荐安装它。Anaconda又可以分很多个虚拟环境来管理,
我们使用Anaconda里的python解释器是使用其某一个虚拟环境中的python解释器。(可以看到
Anaconda每个虚拟环境中都各自有自己的python.exe解释器文件)。同时我们要管理这个Anaconda中的虚拟环境,用的是cmd或者Anaconda Prompt。然后为了搭建tensorflow 和pytorch的gpu版本的深度学习框架,我们需要安装cuda和cudnn。最后,要用一个IDE来编写调试python代码,推荐使用
pycharm和jupyternotebook。
虚拟环境,环境变量是啥?
在安装的过程中经常会碰到虚拟环境这个名词,还用经常要配置环境变量,下面就做一个解释
- **虚拟环境:**要运行python命令,就需要解释器Python.exe解释它。要想在代码里import numpy,就需要numpy的包,然后肯定还需要链接库啊其他什么的,这些东西就构成了一个虚拟环境。
- 用win+R 打开命令行窗口,键入 cmd , (一般默认打开就是cmd,点击确定或者按Enter键就行) 【cmd是什么? cmd就是命令提示符。cmd 可以理解为Windows操作系统兼容的DOS操作系
统。】
- 输入 conda env list conda env list 的意思是显示所有虚拟环境。(等安装完Anaconda后再来测试这一步!先了解下就行)
一般打开时,只有base这个虚拟环境,之前说的Anaconda自带了很多科学包,指的就是“base”这
个虚拟环境带有的包。我们如果想要新建一个虚拟环境,需要在新的环境里面重新下载包,他们是不互通的。
- 环境变量 :安装Anaconda时需要设置环境变量,环境变量就是某些特定的文件路径。
【Windows 系统如何进入环境变量】
- 打开控制面板
【法1】点击桌面左下角的windows图标,然后点击“设置”,然后在设置界面中找到“系统”,点击进
入。再在左侧菜单栏中找到“关于”,点击进入。
【法2】左下角在放大镜处的文本编辑框内键入”系统’’, 然后点击打开即可。
【法3】右键点击桌面上的“此电脑”图标,再在弹出的对话框中点击“属性”。
- 高级系统设置
然后下滑页面,在相关设置中找到“高级系统设置”,点击进入
- 环境变量
- 设置环境变量
设置到用户变量,就只对这个用户有效,若设置到系统变量就对每个用户都有效。
设置环境变量,就是为了告诉cmd 要执行某条命令,例如“conda env list”指令,应该去找谁翻译执行,而这个C:\Users\Lenovo\anaconda3就是它需要的环境变量。系统默认到Path里找,自然要到Path里设
置。这样,即使就在用户目录下执行指令也可以执行成功。实际上,安装完Anaconda后有一个叫Anaconda Prompt的类似cmd的东西。如果在这里输入“conda env list”也可以正确执行,即 使Path没有配置好环境变量
安装的难点
- 版本的匹配问题: 主要是python版本、cuda版本、cudnn版本、pytorch版本、tensorflow的版本匹配(他们之间有相互的匹配规则,在安装前一定要弄清楚要安装的版本。不然就会像我第一次安装一样,安装完了又卸载再安装。。。)
- 环境的冲突问题:安装完Anaconda,我们会有一个base的基础环境。但是不要把pytorch,tensorflow都安装在base 环境中(具体来说就是直接在base 环境里pip install…), 不然会有内部依赖的冲突。我觉得比较好的做法是为每一个框架搭建一个新的虚拟环境(每一个虚拟环境对应一个python版本)
- 命令的输入窗口:我们在安装过程中会在命令窗口输入命令,但要注意是用win+R 打开的cmd窗口,还是Anaconda Prompt、Anaconda powershell Prompt
- 安装的过程中最好不要用翻墙软件,不然可能由于网络问题导致安装失败(我第一次就是因为这个耽误了很长时间找不到error的原因。。。)
安装Anaconda
下载并安装Anaconda
- 首先进入Anaconda官网
- 选择适合自己电脑系统的版本,并点击download
3.双击下载好的应用程序,并进行安装(除了下述特别注意的步骤外,其他的默认选项即可)
4. 然后打开电脑左下角的windows图标,“最近添加”中就会多出来下面几个图标(后面会用到)
5. 然后点击Anaconda Navigator
这个过程中不要连外网!不然会出现如下的Error (第一次安装的时候因为这个折腾的好久以为是安装出错了)
正常情况下,打开后的界面长这样(目前只有一个base环境):
检查安装结果
检查安装的Anaconda版本: 在Anaconda Prompt 中键入 conda -V
检查已经安装的包: 在Anaconda Prompt 中键入 conda list
查看当前环境: 在Anaconda Prompt 中键入 conda info -e
前提准备
检查是否支持GPU
- 打开NVIDIA 控制面板
搜索NVIDIA Control Panel,然后打开。
- 然后点击"帮助",“系统信息”
- 查看GPU的型号
选择合适的版本
CUDA驱动及CUDA Toolkit最高对应版本
更多匹配组合可以到cuda官网上去查看
使用nvidia-smi
查询驱动版本, 我的电脑目前的驱动版本是461.73, 最高可以安装的cuda版本是11.2
注:驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。
cuda 和cudnn 的版本匹配
更多匹配组合可以到cudnn官网上去查看(一会也会在这个网站上下载cudnn)
tensorflow-gpu 与cudnn、cuda、python的匹配
更多匹配组合可以到tensorflow官网上查看
CUDA Toolkit和PyTorch对应版本
更多匹配组合可以到pytorch官网上查看
安装版本汇总
cuda | cudnn | pytorch | tensorflow-gpu | python | torchvision |
---|---|---|---|---|---|
11.0 | 8.0.5 | 1.7.1 | 2.4.0 | 3.7(tensorflow) 3.8(pytorch) | 0.8.2 |
安装CUDA
下载CUDA
从CUDA Toolkit 官网下载地址上选择合适的版本进行下载
配置环境变量
- 检查是否安装成功
安装成功后在系统的环境变量中会自动添加两个变量,如图:“CUDA_PATH", 和”
CUDA_PATH_V11_0"
- 添加系统变量
点击“新建”, 然后依次添加下述5个系统变量,然后点击“确认”
变量 值
CUDA_SDK_PATH C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0
CUDA_LIB_PATH %CUDA_PATH%\lib\x64 CUDA_BIN_PATH %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH %CUDA_SDK_PATH%\common\lib\x64
然后在系统变量Path里添加变量,双击Path添加如下变量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0\common\lib\x64
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.0\bin\win64
检验cuda是否安装成功
- 打开cmd命令窗口,切换路径
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\demo_suite - 分别运行如下命令:
bandwidthTest.exe
如下图,Result=Pass
deviceQuery.exe
如下图,Result=Pass , 安装成功。
安装Cudnn
- 从Cudnn 官网下载地址上选择合适的版本进行下载
2. 解压下载好的exe文件
3. 将解压后的 cuda 中的所有文件复制并粘贴到 “C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v11.0” 目录下。
安装pytorch
-
打开Anaconda Prompt,在命令窗口输入命令
conda create -n pytorch python=3.7
(其中pytorch是我自己为虚拟环境起的名字,也可以取其他的名字。 这个过程中不要连外网,保持网络的通畅) -
进入虚拟环境
activate pytorch
-
安装pytorch
pip install pytorch==1.7.1
-
检查pytorch安装的版本
如果第三步出错,可以去官网轮子下载地址,选择适合自己版本的轮子,并下载到本地。
切换路径到这两个whl文件所在的文件夹下,然后再pip install 文件名
安装tensorflow-gpu
-
打开Anaconda Prompt,在命令窗口输入命令
conda create -n tf-gpu python=3.7
(其中tf-gpu是我自己为虚拟环境起的名字,也可以取其他的名字。 这个过程中不要连外网,保持网络的通畅)
-
进入虚拟环境
activate tf-gpu
-
安装tensorflow-gpu
pip install tensorflow-gpu==2.4.0
如果安装失败,也可以去官网下载轮子:http://mirrors.aliyun.com/pypi/simple/tensorflow-gpu/ -
检查tensorflow的安装版本
在当前环境下键入下列三个命令:python
,import tensorflow as tf
,tf.__version__
常用命令汇总:
创建环境
conda create -n name python=version
删除环境
conda env remove -n name
激活环境
activate name
取消激活
deactivate
安装指定版本的tensorflow-gpu
pip install tensorflow-gpu== version
卸载已经安装的tensorflow-gpu
pip uninstall tensorflow-gpu-version
安装pycharm并导入虚拟环境
- 首先进入jetbrains官网
- 在DeveloperTools中找到pycharm
- 然后根据自己电脑的系统选择合适的版本进行下载(专业版的可以免费试用,也可以去进行学生认证)
4.无特殊说明next,install,finish即可完成安装
在这一步要全部勾选
安装完成后,双击图标进入软件,选择Evaluate for free (也可以去官网上进行学生认证)
点击new project
New environment using 选择conda,以及你想要的python版本, 然后create。
点击File, setting , 找到python interpreter, 点击右边的设置图标,在弹窗中点击Add.
选择Conda Environmentm, Existing Environment, 在下拉框中选择你要导入的环境,最后点击ok.
导入成功后,如果下次你运行代码时想要选择某个虚拟环境,先点击"Edit Configuration"
然后选择你想要的python interpreter,点击ok 就可以啦!
安装jupyter notebook并导入虚拟环境
- 打开Anaconda prompt, 激活虚拟环境
activate pytorch
(此处以pytorch为例) - 在当前虚拟环境下安装
conda install ipykernel
- 安装notebook ,键入
pip install notebook
- 将当前环境写入notebook中
python -m ipykernel install --user --name pytorch --display-name pytorch
(此处以pytorch为例,如果要导入tf-gpu, 把pytorch 替换成tf-gpu即可) - 打开notebook
ipython notebook
如果你装错了,先移除再重新安装:
移除写入notebook 的虚拟环境:jupyter kernelspec remove env_name (env_name 改为你要移除的虚拟环境的名称)
这时浏览器会自动打开notebook的界面,点击new, 选择你要使用的虚拟环境。(在使用notebook的过程中,不要关闭打开notebook的命令窗口,否则关闭窗口就相当于关闭了notebook)
切换当前环境为新建立的虚拟环境opencvEnv(在导航栏中点击“kernel","change kernel “,“opencvEnv”) ,然后就可以在你新建的文件夹里写代码了!
当然,写代码的过程中,你也可以切换你需要的虚拟环境: 点击"kernel”,“change kernel”,然后选择就好啦
下次再打开notebook时,还可以用cmd命令行窗口,切换路径(默认是c盘),然后键入jupyter notebook
, 最后按’'Enter"即可
补充一些notebook一些常用的快捷键:
检查是否在使用GPU加速
通过运行代码验证
- 检查pytorch
import torch
a = torch.cuda.is_available()
print(a)
ngpu= 1
# Decide which device we want to run on
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))
print(torch.rand(3,3).cuda())
若输出结果分别是True, cuda:0, 显卡的名字
- 检查tensorflow
运行下面的代码检查CUDA和GPU是否可用,代表CUDA和GPU可用。
import tensorflow as tf
a = tf.test.is_built_with_cuda() # 判断CUDA是否可以用
b = tf.test.is_gpu_available(
cuda_only=False,
min_cuda_compute_capability=None
) # 判断GPU是否可以用
print(a)
print(b)
输出结果都是True,代表CUDA和GPU可用
python
import tensorflow as tf
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
若包含GPU信息,则使用了GPU。
通过查看GPU的利用率验证
打开任务管理器,点击“性能 ”,找到你自己英伟达显卡的GPU那一栏,点击一下,可以显示GPU的利用情况,正常情况下你没运行什么程序,GPU利用率什么的都是0,没有波澜,然后你运行代码,会发现GPU利用率开始变化了,以tensorflow的代码为例子。
import tensorflow as tf
with tf.device('/cpu:0'):
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:1'):
c = a + b
# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
# 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(allow_soft_placement=True, log_device_placement=True))
# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.compat.v1.global_variables_initializer())
print(sess.run(c))
后记
因为之前的电脑总是系统出故障,格式化后配环境配了有三四遍,帮同学也配了几遍,终于买新电脑了,所以又配置了一遍,顺便记录一下配置过程。感觉之前不理解的东西也在这么多此的配置过程中明白了原理,所以安装失败不要怕!大不了卸载再重装,你会更加熟练的~
(希望电脑不要再坏了。。