PyTorch是一个开源的Python机器学习库,于2016年由Facebook的人工智能研究团队推出,有助于构建深度学习项目。它强调灵活性,并允许用深度学习领域惯用的Python语言来表示深度学习模型。它的易用性使得它在研究社区中有了早期的使用者,并且在第1次发布之后的几年里,它已经成为应用程序中使用最广泛的深度学习工具之一。
正如Python在编程方面所做的那样,PyTorch也为深度学习提供了很好的入门指南,同时,PyTorch已经被证明完全可以在实际项目和高规格的专业环境下使用。咱们有理由相信PyTorch凭借其清晰的语法、精简的API和易于调试的优点将成为入门深度学习的最佳选择。
PyTorch提供了一个核心数据结构——当然也是:张量。它是一个多维数组,与NumPy数组有许多相似之处。在这个基础上,PyTorch提供了在专用硬件上执行加速数学操作的特性,这使得神经网络结构设计以及在单机或并行计算资源上训练它们变得很方便。
用简单明了的方式推动基础深度学习工具的尝试,是促进小伙伴们获得新技能的很好方式,这这些新的应用知识将成为未来很多软件项目的关键。
好啦,咱们现在开始吧!
一、Ubuntu系统上安装Miniconda
我们先去Miniconda文档页面下载安装脚本:
Miniconda的文档链接https://docs.conda.io/projects/miniconda/en/latest/我下载的是下图中Linux栏中的我框选的脚本
(当然,我直接选择了我写文章时最新的版本:Python: 3.11.5,您可以根据需要选择Python版本)。
页面接着往下拉,选择这个Linux标签。
安装shell命令执行,我的执行如下(我已经把安装脚本下载到了zachen的文件夹中):
现在,咱们在用户根目录下创建文件夹(这是未来要安装Miniconda的地方):
mkdir -p ~/miniconda3
接着去到下载Miniconda安装脚本文件的目录:(我这里是: ~/zachen)
此时您会发现我们刚下载的安装脚本是没有执行权限的,去到安装脚本的目录中,给它一个执行权限:
chmod +x Miniconda3-latest-Linux-x86_64.sh
确定该安装脚本拥有了执行权限后,在安装脚本所在目录中,执行下一步。
bash Miniconda3-latest-Linux-x86_64.sh -b -u -p ~/miniconda3
安装完毕:
删除安装脚本,省空间。
rm -rf Miniconda3-latest-Linux-x86_64.sh
安装后,咱们初始化新安装的 Miniconda。以下命令用于初始化 bash 和 zsh shell:
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
初始化完成后,重新打开当前shell环境。
这时,您会发现,只要一打开终端,好像就自动进入的conda的base环境了,这可怎么办?
像这样:
不着急,我们重新配置一下。
首先,退出conda环境,回到系统默认环境。
conda deactivate
然后,永久关闭自动打开虚拟环境,注意:下面一定要在退出虚拟环境(base)下执行。
conda config --set auto_activate_base false
从此以后,需要打开conda虚拟环境(base)时,就执行:
conda activate base
接下来,咱们验证一下刚刚安装的这个虚拟环境。
打开一个控制台终端,启动虚拟环境(base) ,查看以下python版本,打印一下输出看看。
输入方式看截图:
您会发现,咱们现在用的确实是作者政安晨写文章时Miniconda最新的python虚拟环境。
退出python控制台,回到虚拟环境:
exit()
至此,Miniconda安装完毕。
我们在日常工作中,某些虚拟环境建立时会出错,我可能要删除。
删除虚拟环境有两个方法:
1. 根据路径直接删除:
退出虚拟环境:确保您不在要删除的虚拟环境中。如果在,使用命令 conda deactivate 来退出当前激活的虚拟环境。
查看虚拟环境列表:运行命令 conda env list 或 conda info -e 来查看所有存在的虚拟环境及其路径。
删除虚拟环境:使用命令 conda env remove -p 后跟虚拟环境的完整路径来删除指定的虚拟环境。例如,如果虚拟环境的路径是 /home/kuucoss/anaconda3/envs/myenv,则命令为 conda env remove -p /home/kuucoss/anaconda3/envs/myenv。
确认删除:执行上述命令后,系统会询问您是否确认删除该虚拟环境及其所有包。确认后,conda会卸载该虚拟环境中的所有包,并删除虚拟环境的文件夹。
验证删除:删除完成后,您可以再次使用 conda env list 命令来检查该虚拟环境是否已经被彻底删除。
2. 根据虚拟环境名删除:
要按名称删除 Conda 环境,请使用以下命令:
conda env remove -n <environment_name>
将 <environment_name>
替换为要删除的环境名称。
验证环境删除
列出可用环境
删除 Conda 环境后,您可以通过列出系统上可用的环境来验证是否已成功删除:
conda env list
此命令将显示剩余的 Conda 环境,已删除的环境应不再出现。
确保环境不再存在
您还可以检查文件系统,确保已删除环境的目录已被删除。Conda 环境的默认位置通常为 ~/miniconda3/envs/
或 ~/anaconda3/envs/
,具体取决于您的系统配置。根据您的 Conda 安装情况。
处理依赖关系和已安装的软件包
单独删除软件包
如果您想从 Conda 环境中删除特定的软件包,而不是整个环境,可以使用 conda remove
命令:
conda remove -n <environment_name> -c <package_name>
将 <environment_name>
替换为环境名称,将 <package_name>
替换为要删除的软件包名称。
删除带有依赖关系的环境
在删除 Conda 环境时,Conda 也会删除该环境中安装的所有软件包和依赖项。但是,如果该环境有与其他环境共享的依赖项,Conda 将不会删除这些共享的依赖项,以避免破坏其他环境。
如果您想删除一个环境及其所有依赖项,即使它们与其他环境共享,可以使用 --remove-all
或 -a
标志:
conda env remove -n <environment_name> -a
这将删除该环境,以及与之关联的所有软件包和依赖项,而不管它们是否与其他环境共享。
备份和恢复
备份环境
在删除 Conda 环境之前,最好先对其进行备份。这将允许您在需要时恢复环境。您可以使用 conda env export
命令创建 Conda 环境的备份:
conda env export -n <environment_name> > <environment_name>.yml
这将创建一个包含环境配置的 YAML 文件,您可以使用它来稍后重新创建环境。
恢复环境
要从备份中恢复 Conda 环境,您可以使用 conda env create
命令并指定 YAML 文件:
conda env create -f <environment_name>.yml
这将创建一个新的 Conda 环境,其中包含与备份环境相同的软件包和依赖项。
恢复重新设置的源地址:(就是把设置给conda的那些乱七八糟的源都删掉)
conda config --remove-key channels
二、基于Miniconda安装PyTorch
因为小伙伴们各自的电脑配置不同,下面这个步骤很关键。
虽然从CPU版本的PyTorch开始学习是可以的,但相对于GPU版本的PyTorch来说,在运行速度方面CPU版本存在者极大的劣势,因此还是推荐GPU版本。
首先,咱们创建一个conda虚拟环境,我这里用的是我的博客名称简写:zachen,读者可以自行使用自己喜欢的名字创建虚拟环境。
conda create -n zachen python=3.11
在创建之前,如何已经在某个虚拟环境中,比如:base 虚拟环境,那要先退出:conda deactivate
创建虚拟环境过程如下:
碰到选择,就选:y
创建好虚拟环境后,激活它(这里是我的政安晨的简写zachen,您要把它更改为您自己的名字):
conda activate zachen
验证一下:
配置好虚拟环境后,开始安装PyTorch,先打开PyTorch的官网地址:
PyTorch官网(推荐你的电脑安装方式)https://pytorch.org/get-started/locally/打开官网后,注意观察这里(我的电脑因为是Ubuntu系统,所以是如下的推荐):
注意看最后,运行的指令已经列出来了:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
您的电脑上的显示有可能与我的不同,按照它推荐的指令进行安装。
当然,您也可以选择Conda安装方式:
我的电脑配置下推荐的运行指令如下:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
因为咱们已经安装了Miniconda,我现在选择使用Conda方式安装。
注意:如果您使用Conda方式安装后,验证时发现没有安装成功,可以删除刚才创建的虚拟环境重新安装或使用pip方式安装。
删除虚拟环境的命令:conda remove -n env_name --all —— env_name 是您的虚拟环境名称
过程是这样:
安装过程取决于网络,请耐心等待,中间遇到选择时,照例选择: y 。
OK,安装完毕。
三、验证PyTorch
咱们为了确保 PyTorch 安装正确,我们可以通过运行 PyTorch 示例代码来验证安装。在这里,咱们将构建一个随机初始化的张量。
首先进入Python环境(在虚拟环境中输入python):
然后输入如下代码:
import torch
x = torch.rand(5, 3)
print(x)
执行过程如下图:
咱们成功地构建了一个随机初始化的张量:
PyTorch在Ubuntu的Miniconda虚拟环境中安装成功!
最后多说一句,您可以使用如下代码检查 GPU 驱动程序和 CUDA/ROCm 是否已启用并可被 PyTorch 访问,请运行以下命令来返回 GPU 驱动程序是否已启用:
import torch
torch.cuda.is_available()
torch.cuda.is_available() 返回true表示CUDA有效。
写在最后
现在您已经在Ubuntu的系统上拥有了PyTorch深度学习工具,它具备如下优势:
-
灵活性:PyTorch提供了动态图计算的机制,允许用户在建模过程中进行灵活的操作,可以方便地进行调试和实验。用户可以使用Python的所有强大功能,并且可以自定义和扩展模型和算法。
-
易于使用:PyTorch具有简洁的API设计,使得用户很容易上手和使用。它提供了丰富的预定义模型和损失函数,以及一些常用的优化器,简化了深度学习任务的实现流程。
-
动态计算图:PyTorch的动态计算图机制使得模型的构建和训练更加直观和灵活。用户可以使用Python的控制流结构和变量来定义模型的结构,无需预先定义静态图,从而在调试和实验过程中提供更大的灵活性和便利性。
-
良好的可扩展性:PyTorch支持多种硬件平台和分布式训练,可以方便地在不同的设备上运行模型,如GPU和TPU。此外,PyTorch还支持分布式训练,可以将计算任务分配给多个设备或多台机器进行并行计算。
-
强大的社区支持:PyTorch拥有一个庞大的用户社区,用户可以从社区中获取丰富的文档和教程,解决问题和获取帮助。此外,由于PyTorch的开源性质,用户还可以从社区中获得丰富的开源模型和算法,加速模型的开发和实验过程。
总而言之,PyTorch具有灵活性、易于使用、动态计算图、可扩展性和强大的社区支持等优势,使其成为深度学习任务中的流行选择。