PyTorch 提示和技巧:从张量到神经网络

2023-10-17 16:28:00 浏览数 (1)

张量和梯度

我们将深入探讨使用 PyTorch 构建自己的神经网络必须了解的 2 个基本概念:张量和梯度。

张量

张量是 PyTorch 中的中央数据单元。它们是类似于数组的数据结构,在功能和属性方面与 Numpy 数组非常相似。它们之间最重要的区别是 PyTorch 张量可以在 GPU 的设备上运行以加速计算。

代码语言:javascript复制
# 使用Tensor对象创建了一个 3x3 形状的未初始化张量。
import torch
tensor_uninitialized = torch.Tensor(3, 3)
tensor_uninitialized
"""
tensor([[1.7676e-35, 0.0000e 00, 3.9236e-44],
        [0.0000e 00,        nan, 0.0000e 00],
        [1.3733e-14, 1.2102e 25, 1.6992e-07]])
"""
代码语言:javascript复制
# 我们还可以创建用零、一或随机值填充的张量。
tensor_rand = torch.rand(3, 3)
tensor_rand
"""
tensor([[0.6398, 0.3471, 0.6329],
        [0.4517, 0.2253, 0.8022],
        [0.9537, 0.1698, 0.5718]])
"""

就像 Numpy 数组一样,PyTorch 允许我们在张量之间执行数学运算,同样的 Numpy 数组中的其他常见操作,如索引和切片,也可以使用 PyTorch 中的张量来实现。

代码语言:javascript复制
# 数学运算
x = torch.Tensor([[1, 2, 3],
                  [4, 5, 6]])
tensor_add = torch.add(x, x)
"""
tensor([[ 2.,  4.,  6.],
        [ 8., 10., 12.]])
"""

0 人点赞