作者选择了 国际医疗团体作为 写给捐赠计划的一部分接受捐赠。
介绍
PyTorch是由Facebook AI Research(https://ai.facebook.com)开发的深度学习框架,具有初学者友好的调试工具和高级用户的定制水平,研究人员和从业者在Facebook和特斯拉等公司中使用它。应用程序包括计算机视觉,自然语言处理,密码学,和更多.而更先进的DigitalOcean文章,如 介绍PyTorch,讨论PyTorch的工作方式和你可以用PyTorch构建什么,本教程将专注于安装PyTorch。
在本教程中,你将安装PyTorch的仅支持CPU
版本三步骤. 此安装是理想的谁想要安装和使用PyTorch但谁没有Nvidia图形卡。 特别是,你将安装PyTorch在一个Python虚拟环境与virtualenv。 这种方法隔离PyTorch安装,允许你安装不同的PyTorch版本为每个项目。 一旦你完成安装,你将通过运行一个短的PyTorch程序验证你的安装,然后使用PyTorch执行图像分类。
虽然您不需要在实践深度学习或PyTorch方面的经验来跟随本教程,但我们将假定您熟悉机器学习术语和概念,例如压缩器。
前提条件
要完成本教程,您将需要Python 3的本地开发环境,至少具有1GB的RAM,您可以遵循 如何安装和设置Python 3的本地编程环境来设置Python和您的编程环境的基本内容。
步骤1:安装 PyTorch
让我们为这个项目创建一个工作区,并安装您需要的依赖,您将把工作区称为pytorch
:
1mkdir ~/pytorch
创建一个目录,存储您的所有资产:
1mkdir ~/pytorch/assets
导航到pytorch
目录:
1cd ~/pytorch
然后为项目创建一个新的虚拟环境:
1python3 -m venv pytorch
激活你的环境:
1source pytorch/bin/activate
然后安装 PyTorch。在 macOS 上,使用以下命令安装 PyTorch:
1pip install torch torchvision
在 Linux 和 Windows 上,使用以下命令为仅 CPU 构建:
1pip install torch==1.7.1+cpu torchvision==0.8.2+cpu -f https://download.pytorch.org/whl/torch_stable.html
请注意,默认情况下,您还包括了torchvision
。本子库包含几个计算机视觉特定的实用程序,您将在本教程中稍后使用这些实用程序。
1[secondary_label Output]
2Collecting torch
3 Downloading torch-1.7.1-cp38-none-macosx_10_9_x86_64.whl (108.9 MB)
4 |████████████████████████████████| 108.9 MB 8.3 MB/s
5
6. . .
7
8Successfully installed pillow-8.1.0 torch-1.7.1 torchvision-0.8.2
<$>[注] 注: 如果您想随时关闭虚拟环境,则命令为:
1deactivate
若要稍后重新激活环境,请导航到您的项目目录并运行源 pytorch/bin/activate
。
现在,您已经安装了 PyTorch,您将确保 PyTorch 安装工作。
步骤2 - 验证安装
要验证 PyTorch 的安装,您将作为非 root 用户在 PyTorch 中运行一个小程序,而不是创建一个 Python 文件,您将使用 Python 的互动控制台创建这个程序。
要编写程序,请使用以下命令启动您的Python解释器:
1python3
您将在您的终端收到以下提示:
这是Python解释器的提示,它表明它已经为您准备好开始输入一些Python陈述。
首先,输入此行以导入 PyTorch 包. 在输入代码行后按ENTER
:
1import torch
定义一个零的矢量. 现在,想想一个 vector 作为一个数字的集合,或者更具体地说,一个数字列表。 更详细地说: 矢量是空间中的一个箭头
,表示方向(箭头点在哪里)和大小(箭头长度)。
运行以下Python:
1torch.Tensor([0, 0, 0])
你会得到这个输出:
1[secondary_label Output]
2tensor([0., 0., 0.])
这表明 PyTorch 安装成功,然后按CTRL+D
来退出 Python 交互控制台,然后使用 PyTorch 构建图像分类器。
步骤 3 — 使用 PyTorch 进行图像分类
现在你已经验证了 PyTorch 安装,你将设置一个图像分类器。
图像分类器接受图像作为输入,并输出预测类(如猫
或狗
)的图像分类器是深度学习框架中常规的Hello World
等级。 除了惯例,还有几个很好的理由开始使用图像分类。 首先,许多图像分类器可以在商品CPU上生成预测,而不需要大量的GPU资源。 其次,很容易知道您的图像分类器是基于预测类工作的(或不是)。
在本教程中,您将使用已经训练过的图像分类器. 我们称之为这些 pretrained 图像分类器. 特别是,您将使用图像分类器来预测图像的类别。
首先,下载一个 JSON 文件,将神经网络输出转换为人类可读的类名称:
1wget -O ~/pytorch/assets/imagenet_idx_to_label.json https://raw.githubusercontent.com/do-community/tricking-neural-networks/master/utils/imagenet_idx_to_label.json
下载下面的Python脚本,它会加载图像,加载神经网络及其重量,并使用神经网络来分类图像:
1wget https://raw.githubusercontent.com/do-community/tricking-neural-networks/master/step_2_pretrained.py
<$>[注] 注: 对于这个文件的更详细的步骤_2_pretrained.py,请阅读如何欺骗神经网络教程中的 ** Step 2 — Running a Pretrained Animal Classifier** 。
下载 下面的狗的图像以启动图像分类器。
使用以下命令来做到这一点:
1wget -O assets/dog.jpg assets/trick_neural_network/step2a.png
最后,在新下载的图像上运行预训练的图像分类器。 Pretrained 意味着该模型已经受过训练,并将能够准确地预测类:
1python step_2_pretrained.py assets/dog.jpg
这将产生以下输出,显示您的动物分类器按预期工作:
1[secondary_label Output]
2Prediction: Pembroke, Pembroke Welsh corgi
如果您想使用另一个图像,您可以通过将第一个参数更改为您的 python3 step_2_pretrained.py
命令。 对于参数,您将通过图像文件的 相对路径。
皮托奇生态系统
在本节中,我们建议您在使用 PyTorch 时开始使用几个框架和库,尽管这些额外的库在 PyTorch 旅程中可能不会有用,但知道这些工具存在是很有用的,因此您可以在准备时利用它们。
对于每个深度学习库,都有一个高层次的框架可用。PyTorch在其最初几年是这个规则的例外。然而,Facebook AI Research在2019年发布了两个框架,这些框架在受欢迎程度上迅速增长。 请注意,到2021年2月,没有一个图书馆是完全成熟的,因此,原生PyTorch教程(https://pytorch.org/tutorials/)是一个更友好的开始地点。
- Classy Vision提供用于启动新项目和规模培训的实用工具。 图书馆可以适应任何应用程序。 由于图书馆最初用于视频中的行动识别,它包含了一套特别方便的视频实用工具和对视频数据集的外包支持。 参观他们的教程(https://classyvision.ai/tutorials/)以获取更多信息。 在 ImageNet 上提供了一个 Classy Vision 培训的例子: Neural-Backed Decision Trees,您可以了解更多关于此教程(https://andsky.com/tech/tutorials/how-to-visualize-and-interpret-neural-networks# step-4-%E2%80%94-using-neural-backed-decision-trees)的视频数据集。
- PyTorchning Light为创建 PyTorch 项目提供了框架。 同样,您可以将此图书馆适应任何应用程序。 您可以使用 [P
有几种深度学习 - 图书馆 - 无知工具,这些工具也是有用的集成,这两者在研究和行业社区都繁衍。
- 重量和偏见是专为实验跟踪而设计的,特别有助于(a)协作者之间进行通信,(b)保持实验组织,以及(c)快速同时可视化许多实验结果。
- Tensorboard显然是为Tensorflow设计的。
要将 PyTorch 模型部署到生产中,有几个常用的选项:
- TorchScript是PyTorch模型的原始支持的部署选项,但在2021年,大多数模型部署都使用以下两种方法之一。
- ONNX是所有深度学习框架的开源格式,不仅支持深度学习框架的部署,而且支持深度学习框架之间的互操作性。在实践中,从PyTorch模型转换到ONNX格式需要一些调试来完成工作。 随着PyTorch增加对ONNX出口的原始支持,多年以来,这种情况有所改善。 *_Caffe2(https://caffe2.ai/blog/2018/05/02/Caffe2_PyTorch_1_0.html)是这三种框架中最常用的部署选项。尽管Caffe2本身是一个独立的深度学习框
还有一些以应用程序为中心的 PyTorch GitHub 存储库,有助于在各自的研究领域复制并构建最先进的结果:
- Detectron2用于计算机视觉支持对象检测,对象细分,键点估计等。它还包括用于导出模型在Torchscript或Caffe2.
- 转换器用于自然语言处理支持大量最先进的模型及其相关的代币化器。
您可以在 PyTorch 生态系统中找到更多 PyTorch 库。
结论
您已经在Python虚拟环境中安装了PyTorch,并通过运行几个示例验证了PyTorch的功能,现在您有工具进一步探索机器学习。 对于开发深度学习技术的下一步,请参阅 PyTorch的介绍:构建神经网络来识别手写数字。
要了解更多关于 PyTorch 的信息,请参阅 官方教程。你还可以开始使用其他流行的深度学习框架,包括 Tensorflow。