美文网首页大数据,机器学习,人工智能橘子AI笔记
Win10深度学习环境搭建(TensorFlow/Pytorch

Win10深度学习环境搭建(TensorFlow/Pytorch

作者: 橘子学AI | 来源:发表于2020-04-13 16:36 被阅读0次

    作者/编辑/配图 | 橘子   来源 | 橘子AI笔记(ID:datawitch)

    如果从现在开始决定学习深度学习,写代码、搭建自己的模型,那么准备开发环境将是你艰难的第一步。橘子当时搜必应、查谷歌 忘了度娘吧,安装攻略没少看,结果真到自己上手实践的时候,依然碰到了不少问题。

    本文将尝试站在萌新的视角,尽力还原这一过程中可能碰到的种种问题,希望它能指引着你顺利完成配置过程、帮你省下一些宝贵的时间。

    01.

    硬件准备

    一个完整的深度学习GPU开发环境需要硬件和软件两方面的支持,在硬件部分,我将从GPU、CPU、散热、主板、电源、内存、硬盘和显示器几方面分别介绍。

    GPU

    深度学习需要进行大量矩阵运算,如果不考虑云端服务提供的TPU资源,一块足够好的GPU就是普通人的性价比之选。

    目前最常用的是NVIDIA显卡,主要关注的GPU性能参数是显存CUDA计算能力

    显存关系到你能训练多大的深度学习模型。8-11GB的显存对现阶段而言是够用的,预算充足的前提下,建议选择更高的显存。

    显卡的CUDA计算能力会影响模型训练的速度。不同版本的TensorFlow要求不同,最新版本的最低要求是3.5以上

    2020年Lambda推荐的显卡型号有:

    RTX 2060 (6 GB): 如果你只是想在空闲时间玩玩深度学习模型。

    RTX 2070/2080 (8 GB): 如果你是认真想做深度学习,但预算又非常有限。8 GB的显存能满足大多数模型的需求。

    RTX 2080 Ti (11 GB): 如果你是认真想做深度学习,并且预算稍高一些。RTX 2080 Ti比RTX 2080提速40%。

    Titan RTX/Quadro RTX 6000 (24 GB): 如果你需要频繁使用当下最好的深度学习模型,但没有足够的预算购买RTX 8000。

    Quadro RTX 8000 (48 GB): 你在为未来投资!甚至有可能幸运地在今年就研究出下一个最先进的深度学习模型。

    你也可以选择购买二手的GTX 1080ti (11 GB)

    CPU

    首先要明确的是,相比于GPU,深度学习并不那么需要高性能的CPU,在运行深度神经网络时CPU承担的运算量很少,所以挑选CPU不是越贵越好

    在深度学习任务中,CPU主要承担的工作是数据预处理。为了不让这一步成为瓶颈,至少保证每个GPU能对应4个CPU线程,CPU主频最好在3.6 GHz以上

    散热

    不可忽视的环节。一般GPU温度达到80℃就会触发保护、降低性能。因此无论是选择风冷还是水冷,必须要配备散热系统

    另外,由于NVIDIA显卡首先都是游戏显卡,已经针对Windows操作系统做了优化,可以很方便地在Windows系统中更改风扇相关选项。而大部分深度学习库都是为Linux操作系统写的。这一矛盾我将在之后提供一种解决方案。

    主板

    没什么特别的,保证有足够的PCIe端口

    电源

    将GPU和CPU的功率相加乘以110%就是最低要求。保证有足够的PCIe端口。

    内存

    记住一个原则:内存应该大于显存

    理想情况是配备32 GB及以上的内存,如果预算有限,那么16 GB也可以接受。

    硬盘

    主要关注的性能参数是存储容量读取速度

    其中,存储容量决定了你能用多大的数据集,读取速度会影响到训练过程中的I/O操作

    固态硬盘(SSD)的读取速度显著超过普通机械硬盘,建议选择一块256 GB以上的SSD。

    显示器

    既然是做数据分析而不是做设计,没什么特殊要求,够用就行。而根据经验,多一个显示器可以用来打游戏 显著提升你的工作效率。

    橘子目前使用的工作站配备了Intel Xeon CPU,NVIDIA GTX 1080ti (11 GB) GPU,16 GB内存以及256 GB的SSD。

    这个配置大概是什么概念呢?

    在这台电脑上训练一个拥有10,484,994参数的深度卷积神经网络,大致需要7分38秒。

    02.

    软件准备

    假设你已经有了足够好的电脑,接下来需要安装:

    MinGW-w64 MSYS2– 用于在Windows下搭建类Unix环境(也就是上文提到的解决方案:Windows、Linux,一个都不能少~)

    NVIDIA显卡驱动– 允许系统使用GPU带来的运算加速

    Visual StudioWindows 10 SDK– CUDA需要,如果不提前装好,CUDA安装程序也会在最后一步提醒你的

    CUDA Toolkit– GPU C语言库,为高性能GPU加速应用程序提供开发环境

    cuDNN– 基于CUDA,深度学习使用的GPU加速基元库

    Python pip– 机器学习领域最常用的编程语言及其包管理工具

    Pytorch/TensorFlow– 两个都是主流的深度学习框架,可以二选一

    为了以后更好的编程体验,你还会需要:

    Sublime Text– 文本编辑器,用来写代码和看代码,换一个同类的也可以

    Jupyter Notebook– 以网页的形式打开,可以在浏览器页面中直接写代码、运行代码,运行结果也会直接在代码块下显示

    安装MinGW-w64和MSYS2

    我想了想决定把这一步提到最前面。因为一旦类Unix环境配置好,后续操作就可以在Powershell中无缝使用Linux系统的常用命令,体验非常顺畅。

    Win 10 (64位) 的用户请在MSYS2官网下载页面选择msys2-x86_64的安装包。

    下载安装完成之后,打开MSYS2,在窗口中输入以下命令安装:

    pacman -S mingw-w64-x86_64-gcc

    (可选)以上一步安装的gcc为例如果还需要安装其他Linux库,可以先输入以下命令查询,mingw-w64-x86_64-gcc可替换为其他任何库的名称:

    pacman -Ss mingw-w64-x86_64-gcc

    查询之后安装命令同前

    在搜索框中搜索「编辑系统环境变量」,「系统属性」–「高级」中选择「环境变量」

    将MSYS2相关的三个目录(如图)添加到「系统变量」的「Path」中。

    以后类似的步骤如何添加环境变量就不再重复啦

    这样就可以在Powershell中使用Linux命令了。

    安装NIVIDIA显卡驱动

    NVIDIA官网可以按照GPU型号下载最新的显卡驱动程序。如果已经安装,强烈建议你在开始下一步之前先检查更新。

    在开始菜单图标上右键「Windows Powershell (管理员)」,以管理员身份打开Powershell,进入nvidia-smi所在目录:

    cd ‘C:\Program Files\NVIDIA Corporation\NVSMI’

    以后打开Powershell都默认管理员,不再重复

    运行「nvidia-smi」命令:

    .\nvidia-smi

    可以看到当前显卡的型号、显存、驱动版本以及正在使用显卡的进程。后续安装了CUDA之后,也可以看到CUDA版本。

    如果这个命令不起作用,请先检查你的显卡驱动有没有安装好。

    Visual Studio和Windows 10 SDK

    在开始安装CUDA之前,先检查一下自己电脑上有无Visual Studio和Windows 10 SDK。在VS官网选择Community版本。

    安装程序还会进行两次下载,需要耐心等待。

    两次下载完成后,为了后续安装和测试CUDA,「使用C++的桌面开发」和「Windows 10 SDK」两项是必须安装的,其他组件可以看个人需要。

    安装CUDA Toolkit

    根据当前显卡驱动版本,选择对应的CUDA版本。最新版本的TensorFlow (>= 2.1.0)支持CUDA 10.1,需要显卡驱动版本高于418.x。

    这里列出了所有CUDA版本的下载链接,以CUDA 10.1为例下载本地安装包。

    双击下载好的文件,安装过程会自动开始。

    安装过程中,软件协议选择「同意并继续」

    选择默认的「精简」模式,然后下一步。

    如果跳出Windows安全中心的提示,继续「安装」

    最后一步会检查Visual Studio,如果前面已经安装好,就没有问题,按要求重启电脑。

    正常安装完成后,CUDA的目录应该已经存在于系统环境变量「Path」中,为了保险可以检查一下。

    打开图中目录,根据你的Visual Studio版本打开对应的文件,比如我选择「nbody_vs2017.sln」

    注意「ProgramData」可能是隐藏文件夹,在「文件」–「查看」里勾选「隐藏的项目」就显示了。

    选中「nbody」,菜单栏中选生成解决方案。

    在「输出」栏中得到下图结果说明生成成功。

    在Powershell中输入以下命令打开nbody目录:

    cd ‘C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\bin\win64\Debug’

    运行nbody:

    .\nbody.exe

    运行成功结果如图,可以看到CUDA使用的GPU。

    CUDA的官方文档中有更详细的安装步骤说明。

    安装cuDNN

    接下来安装cuDNN。进入cuDNN网站页面并选择「download」之后会要求登录。

    注册一个NVIDIA账号即可。

    按照当前CUDA版本选择对应的cuDNN版本下载。

    将下载好的压缩包解压,分别替换到CUDA目录下对应的文件夹中(这步操作需要管理员权限)

    在Powershell中检查cuDNN版本需要两步:

    cd ‘\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include’

    cat cudnn.h | grep CUDNN_MAJOR -A 2

    运行结果中对应的三个数字就是cuDNN的版本号,如图cuDNN版本为7.6.5。

    安装Python和pip

    Python官网下载所需安装包,需要哪个版本可以看深度学习框架的要求,比如TensorFlow 2.0要求Python版本为3.5-3.7。

    我安装的是Python 3.6.7。

    完成后在Powershell中输入「python」,如果出现如下界面说明安装成功,quit()退出。

    pip官网文件列表中下载.tar.gz安装包。

    在Powershell中,先用「cd」命令打开安装包所在目录,然后输入如下命令解压:

    gzip -dv pip-20.0.2.tar.gz

    tar -xf .\pip-20.0.2.tar

    解压之后输入如下命令,回车,将自动安装pip:

    python setup.py install

    输入以下命令可查看pip是否可用:

    python -m pip –version

    安装Pytorch或TensorFlow

    - Pytorch -

    Pytorch官网查询安装最新版本Pytorch的「pip」命令。如果需要旧版本的pytorch查这里,在Powershell中输入对应的命令即可安装。

    如果安装过程中因为网络问题超时报错,橘子在文末提供了适用于Python 3.6、Pytorch 1.3.1的.whl文件,使用方法是在Powershell中「cd」到.whl文件所在目录,然后敲以下命令:

    pip3 install .\torch-1.3.1-cp36-cp36m-win_amd64.whl

    安装完成后可以输入如下命令验证:

    python -c 'import torch; print(torch.Tensor([1]))'

    如果结果是「tensor([1.])」说明安装成功。

    - TensorFlow -

    在TensorFlow官网可以找到最新版本以前版本的TensorFlow。与Pytorch类似,有两种安装方式,第一种是使用「pip」直接安装:

    pip3 install --upgrade tensorflow

    第二种是下载.whl文件并安装,橘子使用的是适用于Python 3.6的、TensorFlow 2.0.0的.whl文件:

    pip3 install .\tensorflow_gpu-2.0.0-cp36-cp36m-win_amd64.whl

    安装完成后可以输入如下命令验证:

    python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

    安装成功的结果如下。

    安装Sublime Text

    直接从Sublime Text官网下载安装就好。

    安装及配置Jupyter Notebook

    在Powershell中输入如下命令安装Jupyter:

    pip install notebook

    除了文档中写的Jupyter Notebook运行方法,在Windows中还可以写一个.bat文件,简单三步就可以将Jupyter notebook运行目录改到任何位置:

    1、打开Powershell并输入如下命令,生成文件「C:\Users\lenovo\.jupyter\jupyter_notebook_config.py」记录默认配置(「lenovo」替换为你电脑中的用户名)

    Jupyter notebook --generate-config

    2、使用Sublime Text打开这个文件。

    3、用快捷键「Ctrl+F」找到如下行:

    #c.NotebookApp.notebook_dir = ‘’

    去掉「#」注释,把你想要的目录写进去,比如在D盘新建一个目录叫「jupyter」

    c.NotebookApp.notebook_dir = ‘D:/jupyter’

    这三步操作完之后,打开Jupyter的默认方式是先「cd」到这个配置好的目录,然后输入「jupyter notebook」

    这种方法有点麻烦,更省事的办法是写一个.bat文件,无论这个文件放在哪,下次想要打开Jupyter的时候只要以管理员身份运行这个文件就可以了。

    例如,打开Sublime Text新建一个文件,写入如下语句并将文件存为「open_jupyter.bat」

    @echo off

    D:

    cd jupyter

    jupyter notebook

    成功在浏览器打开Jupyter Notebook并新建一个Python 3文件的效果。

    03.

    最后的总结

    目前为止,橘子已经尽力回忆了安装过程中可能遇到的所有坑,但毕竟没法面面俱到。框架一直在更新换代,而我永远不知道哪里会出现新的问题。

    如果你按照本文的步骤依然碰到了问题,我诚恳地建议你,在开口问之前先自己去查,因为搜索引擎和Stack Overflow大概率会给出答案。

    这里有份重点可以帮你避开大部分坑(敲黑板):

    更新NVIDIA显卡驱动为最新

    始终以管理员身份打开Powershell

    安装CUDA之前检查一下电脑上有没有装好Visual Studio和Windows SDK

    根据NVIDIA显卡支持的CUDA版本选择对应的cuDNN、Pytorch/TensorFlow

    确定Python版本与CUDA、cuDNN和深度学习框架兼容

    报错时优先检查Windows系统环境变量

    参考资料:

    https://lambdalabs.com/blog/choosing-a-gpu-for-deep-learning/

    https://timdettmers.com/2018/12/16/deep-learning-hardware-guide/

    https://stackoverflow.com/questions/30069830/how-to-install-mingw-w64-and-msys2

    - End -

    谢谢你看完全文哟 ღ( ´・ᴗ・` )

    橘子AI笔记

    发现数据之美,探索自然之道

    相关文章

      网友评论

        本文标题:Win10深度学习环境搭建(TensorFlow/Pytorch

        本文链接:https://www.haomeiwen.com/subject/tvknmhtx.html