1. Pytorch 简介
1.1 Pytorch 的历史
PyTorch 是一个由 Facebook 的人工智能研究团队开发的开源深度学习框架。在2016年发布后,PyTorch 很快就因其易用性、灵活性和强大的功能而在科研社区中广受欢迎。
1.2 Pytorch 的优点
1. 动态计算图
PyTorch 最突出的优点之一就是它使用了动态计算图(Dynamic Computation Graphs,DCGs),与 TensorFlow 和其他框架使用的静态计算图不同。动态计算图允许你在运行时更改图的行为。这使得 PyTorch 非常灵活,在处理不确定性或复杂性时具有优势,因此非常适合研究和原型设计。
2. 易用性
PyTorch 被设计成易于理解和使用。其API设计的直观性使得学习和使用 PyTorch 成为一件非常愉快的事情。此外,由于 PyTorch 与 Python 的深度集成,它在 Python 程序员中非常流行。
3. 易于调试
由于 PyTorch 的动态性和 Python 性质,调试 PyTorch 程序变得相当直接。你可以使用 Python 的标准调试工具,如 PDB 或 PyCharm,直接查看每个操作的结果和中间变量的状态。
4. 强大的社区支持
PyTorch 的社区非常活跃和支持。官方论坛、GitHub、Stack Overflow 等平台上有大量的 PyTorch用户和开发者,你可以从中找到大量的资源和帮助。
5. 广泛的预训练模型
PyTorch 提供了大量的预训练模型,包括但不限于 ResNet,VGG,Inception,SqueezeNet,EfficientNet 等等。这些预训练模型可以帮助你快速开始新的项目。
6. 高效的GPU利用
PyTorch 可以非常高效地利用 NVIDIA 的 CUDA 库来进行 GPU 计算。同时,它还支持分布式计算,让你可以在多个 GPU 或服务器上训练模型。
综上所述,PyTorch 因其易用性、灵活性、丰富的功能以及强大的社区支持,在深度学习领域中备受欢迎。
2. Pytorch基础
2.1 Tensor操作
Tensor 是 PyTorch 中最基本的数据结构,你可以将其视为多维数组或者矩阵。PyTorch tensor 和NumPy array 非常相似,但是 tensor 还可以在 GPU 上运算,而 NumPy array 则只能在 CPU 上运算。下面,我们将介绍一些基本的 tensor 操作。
首先,我们需要导入 PyTorch 库:
import torch
然后,我们可以创建一个新的 tensor。以下是一些创建 tensor 的方法:
# 创建一个未初始化的5x3矩阵
x = torch.empty(5, 3)
print(x)
# 创建一个随机初始化的5x3矩阵
x = torch.rand(5, 3)
print(x)
# 创建一个5x3的零矩阵,类型为long
x = torch.zeros(5, 3, dtype=torch.