虽然大部分深度学习模型都是在Linux系统上训练的,但是Windows也是一个非常重要的系统,可能是很多机器学习初学者比较熟悉的系统。在Windows上开发模型,首先当然是配置开发环境。Kaggle大师和机器学习从业者Abhinand结合自己的实践给出了一个简单易行的Windows深度学习环境配置过程。本文将介绍在Windows电脑上配置深度学习环境的全过程,包括安装需要的工具和驱动软件。令人惊讶的是,即使是配置深度学习环境也不是一件容易的事。一路上你很可能会犯错误。我已经多次从头开始配置深度学习环境,但通常是在对程序员更友好的操作系统Linux中。对于Windows操作系统,没有多少文章详细解释这个过程。所以我要亲自尝试一下。这些天,经过反复试验,我终于找到了解决办法。这个方法不仅配置成功,而且比我看过的其他教程简单多了。本教程适用于哪些人,我为什么要使用Windows?相信我,我不喜欢自己在Windows上修改CUDA。但我们经常会遇到这样的情况:开发人员经常需要在笔记本电脑或功能更强大的硬件上工作,这些硬件并非专用于深度学习或程序开发。在这种情况下,您不能总是避免使用Windows。如果你处于这种情况,或者恰好有一台Windows电脑,或者还不熟练使用Linux,那么本指南一定会对你有所帮助。本文涵盖以下内容:最低硬件和软件要求安装Python和所需工具设置开发环境一些GPU术语安装GPU驱动程序安装TensorFlow(CPU和GPU)安装PyTorch(CPU和GPU)验证安装我的个人经验和备选方案硬件和软件要求如果您要遵循本指南并计划使用GPU,则必须使用NVIDIAGPU。开发深度学习应用涉及训练神经网络,这自然需要大量计算。因此,我们需要越来越多的并行计算,而GPU可以满足我们的需求。这是当前对GPU需求旺盛的主要原因之一。大多数深度学习框架都内置了对GPU加速的支持,这使得开发人员和研究人员可以在几分钟内使用GPU进行计算,而无需进行任何GPU编程。这些框架中的大多数(仅)支持CUDA,并且仅在NvidiaGPU上可用,这就是您需要使用NvidiaGPU的原因。不过,也不是不能使用AMD的GPU,相关资料可以查阅:https://rocmdocs.amd.com/en/latest/。但是,即使您没有GPU,您仍然可以继续本教程。但要想有效地做深度学习,至少你需要好的CPU、内存和存储空间。我的硬件-笔记本电脑配置如下:CPU-AMDRyzen74800HS8C-16T@4.2GHzonTurboRAM-16GBDDR4RAM@3200MHzGPU-NvidiaGeForceRTX2060Max-Q@6GBGDDR6VRAM对于硬件配置,我推荐至少一个4核2.6GHzCPU、16GBRAM和6GBNvidiaGPU。此外,对于本教程,您当然需要使用Windows10。我还假设您对Python包和环境有基本的了解。不管怎样,稍后会给出解释。推荐的Windows版本是最新的64位Windows10稳定版。本教程假定您的操作系统是全新安装的,并且未进行任何其他修改。但只要你知道自己在做什么,你仍然可以参考本教程。安装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下载Windows64位版本的Python3安装程序,然后像安装任何其他Windows软件一样安装它。请务必选中询问您是否要将Conda和Python添加到您的PATH的框。现在您可以使用以下命令检查Conda和Python是否安装成功。如果安装成功,会显示版本号;否则您可能需要再次正确安装Mini-Conda并将其添加到PATH。下一步是安装jupyter-notebook,请在命令行界面中使用以下命令:您可以通过运行jupyternotebook来验证安装,这将帮助您在浏览器中打开JupyterNotebook。搭建开发环境是很重要的一步,但是很多人都忽略了。使用像Anaconda这样包含所有已知包的工具是可以理解的,但是如果您想开发自己的项目并实际构建一些东西,您可能仍然需要特定于项目或工作性质的自定义开发环境。使用专用虚拟环境的另一大优势是您可以将包与全局设置隔离开来。这样,如果您在该环境中使用包时出错,您可以轻松丢弃它们而不会对全局包产生任何影响。这也使您可以灵活地使用任何以前版本的Python创建环境。这样可以避免使用还不稳定的新特性,再根据支持情况选择是否升级。创建Conda环境非常简单。为了便于说明,我创建了一个名为tensorflow的环境,你可以将其更改为任何名称。我将使用Python3.7,因为我知道TensorFlow对它有很好的支持。顺便说一句,这将是安装TensorFlow的地方,我还将创建一个名为torch的环境来安装PyTorch。环境创建好后,可以通过以下命令进入,其中tensorflow只是我们之前给环境起的名字。进入环境后,在提示框左侧会看到类似这样的信息:如果在Powershell上没有看到这个信息,那么可能需要在Powershell中初始化一次conda:那么,在左侧可能会看到(base),如上图,你已经不在任何环境中了。之后,当您进入任何环境时,您应该会看到环境名称。此外,您可以在环境中安装nb工具并将其链接到我们之前安装的JupyterNotebook。使用JupyterNotebook注册环境,运行以下命令:退出Conda环境,运行以下命令:现在按照相同的步骤创建一个名为torch的环境:如果环境设置成功,您可以在他们的环境列表。要验证每个环境是否安装了各自的包,您可以进入每个环境并执行condalist,它将显示该环境中安装的所有包。不要被这个列表的长度所困扰。Conda已经正确处理了主要部分和依赖项。一些GPU术语在安装与GPU相关的软件之前,了解这些软件是什么以及为什么需要它们很重要。GPU驱动程序:顾名思义,GPU驱动程序是使操作系统和程序能够使用GPU硬件的软件。游戏玩家肯定熟悉这个。如果您喜欢游戏,您可能希望使该软件保持最新状态以获得最佳游戏体验。CUDA:简单来说,这是Nvidia开发的一个编程接口层,可以让你调用GPU的指令集及其并行计算单元。自2010年代末的GeForce8系列GPU以来,几乎所有GPU都兼容CUDA。要了解您的GPU是否支持CUDA,您可以访问Nvidia的网站。例如,如果你有消费级GPU,无论是GeForce系列还是Titan系列,你都可以在下图中看到你的GPU是否支持CUDA。数据截至2020年9月,截图仅包含部分机型。如果您的计算机是笔记本电脑,您应该查看右侧的列表;如果您的计算机是台式机,您显然应该查看左侧的列表。如前所述,我的GPU是右侧列表中的RTX2060Max-Q。此外,您也不必关心显卡型号名称是否与此列表中的名称完全匹配。Max-Q和Super的底层架构是一样的,只是在TDP、CUDA核数和Tensor核数上有一些区别。比如你的GPU是RTX2080Super还是2080Max-Q还是2080SuperMax-Q,看看列表中的RTX2080就可以了。但是如果你的GPU是RTX2080Ti或者其他加Ti的型号,就说明你的GPU是这个系列中最高端的,而且这些GPU通常在显存大小和CUDA核心、tensor核心数量上都有优势.截至2020年9月,要使用TensorFlow2.0,需要3.5以上计算能力的显卡,但建议使用至少6计算能力的显卡以获得更好的体验。TensorFlow2.0还需要CUDA版本10,这反过来至少需要驱动程序版本418.x。PyTorch至少需要CUDA版本9.2,但也支持10.1和10.2。至少需要高于3.0的计算能力。CuDNN:CUDA深度神经网络软件库,一个用于深度神经网络的GPU加速原语库。cuDNN提供高度微调的标准例程实现,例如前向和反向卷积、池化、归一化和激活层。(可选)TensorRT:NVIDIATensorRT是一个用于高性能深度学习接口的SDK。它包括一个深度学习接口优化器和一个运行时优化器,可以为深度学习接口应用程序提供低延迟和高吞吐量的特性。安装GPU驱动首先,你需要弄清楚你使用的是什么型号的GPU,你的GPU必须启用了CUDA。如果您尚未安装驱动程序,则可能需要运行Windows更新,这将自动处理有用软件的安装,例如Nvidia控制面板。这将帮助您获取有关您的GPU的信息,以及一些与本文无关的设置。Nvidia控制面板就位后,您可以从“开始”菜单打开它,或者右键单击桌面并选择Nvidia控制面板。打开后可以点击“帮助→系统信息”查看GPU驱动版本。驱动程序版本号列在详细信息窗口的顶部。如上图所示,我的驱动程序版本是456.x,远高于最低418.x,因此我不必安装新驱动程序。但您的计算机可能并非如此。要安装最新版本的驱动程序,请访问https://www.nvidia.com/Download/index.aspx,然后输入GPU信息以下载相应的驱动程序。?驱动下载完成后,运行安装包,选择快速安装会更方便。驱动安装完成后,可以使用NVIDIA控制面板进行验证。安装驱动程序的另一种方法是使用Nvidia的GeForceExperience应用程序。只要你买的是带主游戏的电脑,应该都预装了这个软件。安装过程很简单。此步骤是可选的。如果您已经按照上述步骤安装好驱动,或者您的电脑没有预装该软件,则无需理会这一步。您可以在这里下载该程序:https://www.nvidia.com/en-in/geforce/geforce-experience/,然后按照安装过程将其安装到您的计算机上。安装完成后,打开它,转到驱动程序选项卡,检查更新并安装新驱动程序。您还可以在应用程序中查看驱动程序版本号。?GeForceExperienceDemo现在最重要的驱动安装步骤已经完成,你可以选择手动安装CUDA工具包,也可以选择在安装TensorFlow或PyTorch时交给Conda(强烈推荐后者)。如果您决定手动安装,您可以从这里下载安装包:https://developer.nvidia.com/cuda-downloads,然后按照说明进行操作。安装CUDA工具包CUDA工具包打包后,可以在cmd或Powershell中执行nvidia-smi命令进行验证。nvidia-smiInstallingTensorFlowNow的输出终于到了本教程的关键。如果您已经完成了前面的步骤,那么这一步就很简单了。我们通过Conda安装TensorFlow2.x。需要注意的是,先进入我们之前创建的tensorflow环境,然后再进行。如果需要GPU支持,运行如下命令:通过anaconda通道安装TensorFlow的GPU支持软件。使用conda而不是pip来安装TensorFlow的一大优势是conda的包管理系统。当您使用conda安装TensorFlow时,conda还会安装所有必需且兼容的依赖项。这个过程是自动的,用户不需要通过系统包管理器或其他方式安装任何额外的软件。它还包含TensorFlow或PyTorch所需的适当版本的CUDA工具包。因此,使用conda可以让这个过程变得非常简单。我们只能在安装了TensorFlowGPU的环境中看到安装了CUDA工具包。这样既不会影响全局系统的CUDA版本,又能满足TensorFlow和PyTorch不同版本的CUDA要求。这是使用虚拟环境的最大好处,可以让不同的虚拟环境完全隔离。如果一切顺利,您将不会在安装过程中看到任何错误消息。为了验证TensorFlow和所需的包是否安装成功,你可以执行condalist,它会显示一个已安装的包列表,你应该在其中找到TensorFlow相关的包以及CUDA工具包。您还可以打开Python提示符来验证是否安装了TensorFlow。如果看到版本号,恭喜你,TensorFlow已经安装成功!任务完成。在Python提示符下验证TensorFlow安装。当你在Python提示符下使用TensorFlow时,你可能会看到这样的信息:“OpenedDynamicLibrary”,但这并不是坏消息。这只是TensorFlow可以打开这些存储库的日志消息。GPU上的安装验证如下所述。如果你想安装CPU-onlyTensorFlow,你需要对安装命令做一个简单的修改。这将安装没有CUDA工具包和GPU支持的TensorFlow。安装PyTorch安装PyTorch的过程与安装TensorFlow没有太大区别。conda使这变得非常容易。首先进入我们创建的torch环境。如果要安装支持CUDA的PyTorch,请使用以下命令:此命令将通过Conda的PyTorch通道安装具有CUDA兼容性的PyTorch。对于仅支持CPU的PyTorch,只需从上述命令中删除cudatookit:这将安装不支持CUDA的PyTorch。和之前一样,可以使用condalist验证安装,也可以使用如下代码在Python上进行验证。如果返回版本号,则PyTorch已成功安装。验证安装有时您认为一切都很好,但是当您准备开始使用这些工具时,您会遇到一些重大错误。如果碰巧遇到这种情况,可能是机器的问题,也可能是流程的错误。不能一概而论,需要具体问题具体分析。为了帮助您更好地验证您的安装并确保TensorFlow和PyTorch使用指定的硬件,这里有一些注意事项。您可以在https://github.com/abhinand5/blog-posts的dl-setup-win文件夹中找到它们。您可以克隆这些注释并运行其中的代码。如果返回的信息正确,就可以放开开发了。下图是这个notebook的代码示例:注意:如果你没有从正确的环境启动JupyterNotebook,你可能会遇到一些错误。比如你要使用tensorflow环境,你可以从base环境启动notebook,然后把内核改成tensorflow环境,但是我这样做的时候遇到了错误。所以,如果你想运行TensorFlow,在tensorflow环境下启动Notebook;如果要运行PyTorch,请在火炬环境中启动Notebook。不要从基地或其他地方启动。我个人的经验和备选方案我一直在用这个配置做一些轻深度学习的工作,反正这个本地硬件就够用了。现在已经几个星期了,一切都很好。但是,在此之前我尝试过其他方法并且遇到了一些严重的问题。例如,我尝试过这里的方法:https://developer.nvidia.com/cuda/wsl,其中涉及在WSL(Linux的Windows子系统)中启用CUDA和Nvidia驱动程序以使用GPU进行深度学习训练。目前该功能还处于预览阶段,但一旦正式发布,必将对深度学习从业者产生重大影响。这将令人惊叹的WSL与CUDA/GPU驱动程序结合在一起。但这是有条件的。要使用此功能,您必须参与Windows预览体验计划项目。当然,根据我的经验,InsiderPreview版本往往有很多错误。我遇到过很多问题,包括所有Windows应用程序不再响应、GSOD(死亡绿屏)错误、无法正常启动、驱动程序故障。我个人不喜欢不稳定的环境,所以我选择退出只是时间问题。很可能您使用预览不会有任何问题,但我的体验太糟糕了,不推荐使用预览。其他替代方案包括根本不使用Windows,只使用基于Linux的系统以获得更流畅的体验。只是Linux没有Windows拥有的花哨的GUI安装程序工具。本文介绍了如何在Windows系统中安装TensorFlow、PyTorch和Jupyter工具,希望对大家有所帮助。
