机器之心合集
虽然大多数深度学习模型都是在Linux 系统上训练的,但Windows 也是一个非常重要的系统,可能是很多机器学习初学者比较熟悉的系统。在Windows上开发模型,第一步当然是配置开发环境。 Kaggle大师和机器学习实践者Abhinand根据自己的实践,提供了一个简单易用的Windows深度学习环境配置流程。
对于Windows操作系统,详细解释这个过程的文章并不多。所以我决定自己尝试一下。这些天,经过多次尝试和错误,我终于找到了解决方案。这个方法不仅配置成功,而且比我见过的其他教程简单很多。
本教程适合谁以及为什么选择Windows?
相信我,我自己不喜欢在Windows 上摆弄CUDA。但我们经常遇到这种情况:开发人员经常需要在笔记本电脑或更强大的硬件上工作,而这些硬件并非专用于深度学习或程序开发。在这种情况下,您不能总是避免使用Windows。如果你正处于这种情况,或者你恰好有一台Windows电脑,或者你还没有熟练使用Linux,那么这篇指南一定会对你有所帮助。
最低硬件和软件要求
安装Python和所需的工具
设置开发环境
一些GPU 术语
安装GPU驱动
安装TensorFlow(CPU 和GPU)
安装PyTorch(CPU 和GPU)
验证安装
我的个人经验和替代方案
最低硬件和软件要求
如果您遵循本指南并计划使用GPU,则必须使用NVIDIA GPU。
开发深度学习应用程序涉及训练神经网络,这自然需要执行大量计算。因此,我们需要越来越多的并行运算,而GPU就可以满足我们的需求。这是目前GPU需求旺盛的主要原因之一。大多数深度学习框架都具有内置GPU 加速支持,允许开发人员和研究人员在几分钟内在GPU 上执行计算,而无需执行任何GPU 编程。
这些框架大多数(仅)支持CUDA,而CUDA 只能在NVIDIA GPU 上使用,这就是您需要使用NVIDIA GPU 的原因。不过,使用AMD GPU 也并非不可能,有关这方面的信息可以在以下位置找到:https://rocmdocs.amd.com/en/latest/。
但是,即使您没有GPU,您仍然可以继续本教程。但为了有效地进行深度学习,至少需要有良好的CPU、内存和存储空间。
我的——笔记本电脑硬件配置如下:
CPU——AMD Ryzen 7 4800HS 8C-16T@ 4.2GHz 睿频
RAM——16 GB DDR4 RAM@3200MHz
GPU——Nvidia GeForce RTX 2060 Max-Q @ 6GB GDDR6 显存
对于硬件配置,我推荐至少具有4 核2.6 GHz CPU、16GB RAM 和6GB VRAM 的Nvidia GPU。
另外,对于本教程,您当然需要使用Windows 10。我还假设您对Python 包和环境有基本的了解。无论如何,稍后都会给出解释。
推荐的Windows 版本是最新的64 位Windows 10 稳定版本。
本教程假设您的操作系统刚刚安装并且未执行任何其他修改。但只要您知道自己在做什么,您仍然可以参考本教程。
安装Python和所需的工具
第一步当然是安装Python。我建议使用Mini-Conda 来安装Python。我先给刚入门的新手解释一下原因。
Conda 是一个包管理工具,可以帮助您安装、管理和删除各种软件包。但Conda并不是唯一的选择,还有pip——,它是我最喜欢的Python默认包管理工具。我们在这里选择Conda的原因是它在Windows上使用起来更简单、更直接。
Anaconda和Mini-Conda都是Conda的软件发行版,预装了一些非常有用的数据科学/机器学习软件包,可以节省大量时间。 Anaconda 包含超过150 个在数据科学和机器学习中有用的软件包,基本上是您可能需要的一切,而Mini-Conda 仅包含一些必要的工具和软件包。
我建议使用Mini-Conda,因为我喜欢(几乎)完全控制已安装的软件包。清楚地了解您正在安装的内容根本不是一件坏事。当然这也会为你节省一些存储空间,而且你也不必安装几十个你可能永远不会使用的奇怪软件包。
要安装Mini-Conda,请访问:https://docs.conda.io/en/latest/miniconda.html
下载适用于Windows 64 位的Python3 安装程序,并像任何其他Windows 软件一样安装它。请务必选中询问是否要将Conda 和Python 添加到PATH 的框。
现在可以通过以下命令检查Conda和Python是否安装成功。如果安装成功,会显示版本号;否则您可能需要再次正确安装Mini-Conda 并将其添加到您的PATH 中。
下一步是安装jupyter-notebook,请在命令行界面中使用以下命令:
您可以通过运行jupyter Notebook 来验证安装,这将在浏览器中打开Jupyter Notebook。
设置开发环境
这一步很重要,但很多人都忽视了。使用像Anaconda 这样包含所有已知软件包的工具是可以理解的,但如果您想开发自己的项目并实际构建一些东西,您可能仍然需要专门针对该项目或您的工作性质的自定义开发环境。使用专用虚拟环境的另一大优点是您可以将软件包与全局设置隔离。这样,如果您在该环境中使用包时出错,您可以轻松丢弃它们,而不会对全局包产生任何影响。
这还使您可以灵活地使用任何以前版本的Python 创建环境。这样,您可以避免使用尚未稳定的新功能,然后根据支持可用性进行升级。
创建Conda环境相对简单。为了便于解释,我创建了一个名为tensorflow的环境,你可以将其更改为任何名称。我将使用Python 3.7,因为我知道TensorFlow 对它有很好的支持。顺便说一下,这就是TensorFlow 将被安装的地方,我还将创建一个名为torch 的环境来安装PyTorch。
环境创建完成后,可以使用以下命令进入环境,其中tensorflow只是我们之前给环境提供的名称。
进入环境后,会在提示框左侧看到类似这样的信息:
如果您在Powershell 上没有看到此消息,那么您可能需要在Powershell 中初始化conda 一次:
然后,您可能会在左侧看到(base),如上所示,并且您不再处于任何环境中。之后,当您进入任何环境时,您应该看到环境名称。
此外,您可以在您的环境中安装nb 工具并将其链接到我们之前安装的Jupyter Notebook。
要使用Jupyter Notebook 注册此环境,请运行以下命令:
要退出Conda环境,请运行以下命令:
现在按照相同的步骤创建一个名为torch 的环境:
如果环境设置成功,您可以在环境列表中看到它们。
要验证每个环境是否安装了各自的软件包,您可以进入每个环境并执行conda list,这将显示该环境中安装的所有软件包。
不要因为这个列表很长而烦恼。 Conda 已经处理了主要部分和依赖项。
一些GPU 术语
在安装GPU相关软件之前,有必要了解这些软件是什么以及为什么需要它们。
GPU驱动程序:顾名思义,GPU驱动程序是允许操作系统和程序使用GPU硬件的软件。游戏玩家肯定对此很熟悉。如果您喜欢玩游戏,您可能需要保持此软件最新以获得最佳游戏体验。
CUDA:简单来说,这是NVIDIA开发的一个编程接口层,可以让你调用GPU的指令集及其并行计算单元。
自2010 年代末的GeForce 8 系列GPU 以来,几乎所有GPU 都兼容CUDA。要了解您的GPU 是否支持CUDA,请访问NVIDIA 网站。
例如,如果您有消费级GPU,无论是GeForce 系列还是Titan 系列,您可以在下图中查看您的GPU 是否支持CUDA。
数据截至2020年9月,截图仅包含部分机型。
如果您的计算机是笔记本电脑,您应该查看右侧的列表;如果您的计算机是台式机,那么您显然应该查看左侧的列表。
如前所述,我的GPU 是右侧列表中的RTX 2060 Max-Q。另外,您不必担心显卡型号名称是否与此列表中的完全匹配,Max-Q 和Super 具有相同的底层架构,只是在TDP、CUDA 核心和张量核心数方面存在一些差异。
例如,无论您的GPU是RTX 2080 Super还是2080 Max-Q或2080 Super Max-Q,只需查看列表中的RTX 2080即可。但如果你的GPU是RTX 2080Ti或者其他加Ti的型号,那就说明你的GPU是该系列中最高端的。这些GPU通常在内存大小以及CUDA核心和张量核心的数量方面具有优势。
截至2020年9月,要使用TensorFlow 2.0,显卡的计算能力必须高于3.5,但建议使用计算能力至少为6的显卡以获得更好的体验。 TensorFlow 2.0 还需要CUDA 版本10,这进一步要求驱动程序版本至少为418.x。
PyTorch 要求CUDA 版本至少为9.2,但也支持10.1 和10.2。所需的计算能力至少高于3.0。
CuDNN:CUDA 深度神经网络软件库,一个用于深度神经网络的GPU 加速原始库。 cuDNN 提供高度微调的标准例程实现,例如前向和逆向卷积、池化、归一化和激活层。
(可选)TensorRT:NVIDIA TensorRT 是用于高性能深度学习接口的SDK。它包括深度学习接口优化器和运行时优化器,可以为深度学习接口应用提供低延迟和高吞吐量的特性。
安装GPU驱动
首先,您需要弄清楚您使用的是哪种GPU型号,并且您的GPU必须启用CUDA。
NVIDIA 控制面板准备就绪后,您可以从“开始”菜单打开它,或者右键单击桌面并选择“NVIDIA 控制面板”。
打开后可以点击“帮助系统信息”查看GPU驱动版本。驱动程序版本号列在“详细信息”窗口的顶部。
如上图所示,我的驱动程序版本是456.x,远远超出了418.x的最低要求,因此我不必安装新的驱动程序。
但你的电脑可能不是这样的。要安装最新驱动程序,请访问https://www.nvidia.com/Download/index.aspx,输入您的GPU 信息,然后下载相应的驱动程序。
驱动下载完成后,运行安装包,选择“快速安装”,更方便。驱动安装完成后,可以使用NVIDIA控制面板进行验证。
安装驱动程序的另一种方法是使用Nvidia 的GeForce Experience 应用程序。只要你买了一台主打游戏的电脑,就应该预装这个软件。安装过程很简单。
此步骤是可选的。如果您已经按照上述步骤安装了驱动程序,或者您的计算机没有预装该软件,那么您无需担心此步骤。
您可以在此处下载该程序:https://www.nvidia.com/en-in/geforce/geforce-experience/,然后按照安装过程将其安装到您的计算机上。安装完成后,打开它,转到“驱动程序”选项卡,检查更新并安装新驱动程序。您还可以在应用程序中查看驱动程序版本号。
GeForce 体验演示
现在安装驱动程序最重要的步骤已经完成,您可以选择手动安装CUDA 工具包,也可以在安装TensorFlow 或PyTorch 时将其留给Conda(强烈推荐后者)。
如果您决定手动安装,可以从此处下载安装包:https://developer.nvidia.com/cuda-downloads,然后按照说明进行操作。
安装CUDA工具包
CUDA工具打包后,可以在cmd或Powershell中执行nvidia-smi命令进行验证。
nvidia-smi 输出
安装TensorFlow
现在我们终于来到了本教程的重点。如果您已经完成了前面的步骤,那么此步骤非常简单。
我们通过Conda 安装TensorFlow 2.x。
请注意,首先进入我们之前创建的tensorflow环境,然后继续。
如果您需要GPU 支持,只需运行以下命令:
通过anaconda通道安装TensorFlow的GPU支持软件。使用conda 而不是pip 安装TensorFlow 的优点之一是conda 的包管理系统。当您使用conda 安装TensorFlow 时,conda 还会安装所有必需且兼容的依赖包。这个过程是自动的,用户不需要通过系统包管理器或其他方式安装任何其他软件。
它还包含TensorFlow 或PyTorch 所需的相应版本的CUDA 工具包。因此,使用conda 使这个过程变得非常简单。
我们只能在安装了TensorFlow GPU的环境中才能看到安装的CUDA工具包。这不会影响全局系统的CUDA版本,同时也可以满足不同版本的CUDA对TensorFlow和PyTorch的需求。这就是使用虚拟环境的最大好处,它可以让不同的虚拟环境完全隔离。
如果一切顺利,您在安装过程中将不会看到任何错误消息。
要验证TensorFlow 和所需的软件包是否已成功安装,您可以执行conda list,它将显示已安装软件包的列表,您应该能够在其中找到TensorFlow 相关的软件包以及CUDA 工具包。
您还可以打开Python 提示符来验证TensorFlow 是否已安装。
如果看到版本号,恭喜,TensorFlow已经安装成功!任务完成了。
在Python 提示符下验证TensorFlow 安装。
在使用TensorFlow 时,你可能会在Python 提示中看到这条消息:“Opened Dynamic Library”,但这并不是坏消息。这只是一条日志消息,表明TensorFlow 可以打开这些软件库。
GPU 上的安装验证如下所述。
如果要安装仅CPU的TensorFlow,需要对安装命令进行简单修改。
这将在没有CUDA 工具包和GPU 支持的情况下安装TensorFlow。
安装PyTorch
安装PyTorch的过程其实和安装TensorFlow没有太大区别。 conda 使这变得非常容易。
首先,进入我们创建的torch环境。
如果要安装支持CUDA 的PyTorch,请使用以下命令:
此命令通过Conda 的PyTorch 通道安装CUDA 兼容的PyTorch。
对于仅限CPU 的PyTorch,只需从上述命令中删除cudatookit 即可:
这将安装没有CUDA 支持的PyTorch。
和之前一样,您可以使用conda list 来验证安装,也可以使用以下代码在Python 上进行验证。
如果返回版本号,则说明PyTorch 已成功安装。
验证安装
有时你以为一切都很顺利,但准备开始使用工具时却遇到了一些重大错误。如果你恰好遇到这种情况,可能是机器的问题,或者是流程的错误。不能概括和具体分析具体问题。
您可以在https://github.com/abhinand5/blog-posts 的dl-setup-win 文件夹中找到它们。您可以克隆这些注释并运行其中的代码。如果返回的信息正确,则可以继续开发。
下图是本笔记的代码示例:
注意:如果您没有从正确的环境启动Jupyter Notebook,您可能会遇到一些错误。例如,如果你想使用tensorflow环境,你可以从base环境启动notebook,然后将内核更改为tensorflow环境,但我在这样做时遇到了错误。因此,如果要运行TensorFlow,请在tensorflow环境中启动Notebook;如果要运行PyTorch,请在torch 环境中启动Notebook。不要从基地或其他地方开始。
我的个人经验和替代方案
我一直在使用这个配置来完成一些轻量级的深度学习工作。无论如何,本地的这个硬件已经足够了。现在已经过去几周了,一切看起来都不错。然而,在此之前我曾尝试过其他方法,但遇到了一些严重的问题。
例如,我曾经尝试过这里的方法:https://developer.nvidia.com/cuda/wsl,其中涉及启用WSL(Windows Subsystem for Linux)中的CUDA和NVIDIA驱动程序以使用GPU进行深度学习训练。该功能目前还处于预览阶段,但一旦正式发布,将对深度学习从业者产生重大影响。这将WSL 的惊人功能与CUDA/GPU 驱动程序结合在一起。
但这是有条件的。要使用此功能,您必须参加Windows Insider 计划。当然,根据我的经验,内部预览往往会出现错误。我遇到了许多问题,包括所有Windows 应用程序不再响应、GSOD(绿屏死机)错误、无法正确启动以及驱动程序故障。我个人不喜欢不稳定的环境,所以选择退出只是时间问题。
使用预览版可能不会出现任何问题,但我的体验非常糟糕,因此我不建议使用预览版。
用户评论
减肥伤身#
哇,终于找到一篇详细的Windows配置教程了!我一直在为深度学习模型的训练发愁,这篇博文简直是及时雨。
有13位网友表示赞同!
惯例
我试过在Windows上训练模型,但是配置起来真的很头疼。这篇教程里的步骤太详细了,我要赶紧试试看!
有12位网友表示赞同!
你很爱吃凉皮
深度学习在Windows上也能顺利运行?这真的让我很惊讶,希望这篇教程能让我摆脱困境。
有18位网友表示赞同!
余温散尽ぺ
这个教程看起来很不错,但是我能用我的老电脑吗?我的电脑配置有点低,不知道能不能支持深度学习。
有11位网友表示赞同!
怅惘
太棒了!我终于在Windows上成功配置了深度学习环境,这篇教程真的帮了我大忙。
有19位网友表示赞同!
烟雨离殇
我之前在Linux上训练模型,现在想切换到Windows,这篇教程应该能给我很多帮助。
有7位网友表示赞同!
無極卍盜
我是一名初学者,这篇教程里的步骤太详细了,感觉我已经掌握了一半的深度学习知识了。
有19位网友表示赞同!
蔚蓝的天空〃没有我的翅膀
这篇教程的图片解释得太清楚了,我这种视觉学习者看得很舒服,也更容易理解。
有14位网友表示赞同!
夏日倾情
深度学习在Windows上运行?这让我对Windows的潜力有了新的认识,感谢作者分享。
有20位网友表示赞同!
绝版女子
教程里提到的软件我都安装了,但是不知道怎么配置,希望能有人帮忙解答。
有11位网友表示赞同!
此生一诺
我尝试过在Windows上训练模型,但是总是遇到各种问题。这篇教程可能会帮我解决问题。
有15位网友表示赞同!
反正是我
这篇教程太全面了,不仅介绍了软件安装,还讲解了硬件配置,太贴心了。
有20位网友表示赞同!
あ浅浅の嘚僾
我的电脑配置不够,教程里提到的GPU训练我可能用不上,希望作者能提供CPU训练的教程。
有20位网友表示赞同!
颓废i
深度学习在Windows上可行吗?我之前一直以为只能在Linux上运行,这篇教程让我有了新的尝试。
有8位网友表示赞同!
醉枫染墨
这篇教程太详细了,但是我看不懂,希望能有人帮忙解释一下。
有19位网友表示赞同!
醉红颜
我已经按照教程配置好了环境,但是训练速度还是太慢,有什么办法能提高速度吗?
有6位网友表示赞同!
迷路的男人
深度学习在Windows上的教程终于来了,我已经迫不及待想要试试了。
有15位网友表示赞同!
各自安好ぃ
这篇教程让我对深度学习有了更深的理解,感谢作者分享这么宝贵的知识。
有20位网友表示赞同!
棃海
教程里的步骤虽然详细,但是我遇到的问题还是解决不了,求解答!
有11位网友表示赞同!