PyTorch 中的 Tensors 是进行机器学习计算的基础。它们是支持自动微分的数据结构,可以用来存储和操作数据。

基本概念

  • 什么是 Tensor? Tensor 是多维数组,可以用来存储数据。在 PyTorch 中,Tensors 可以是任意维度。
  • 创建 Tensor:可以使用多种方式创建 Tensor,例如直接指定数据、使用 PyTorch 的数据类型等。

创建 Tensor

import torch

# 创建一个一维 Tensor
tensor_1d = torch.tensor([1, 2, 3])

# 创建一个二维 Tensor
tensor_2d = torch.tensor([[1, 2], [3, 4]])

Tensor 操作

  • 索引和切片:可以使用与 NumPy 相似的语法来索引和切片 Tensor。
  • 数学运算:Tensors 支持各种数学运算,例如加法、减法、乘法、除法等。
# 索引和切片
print(tensor_2d[0, 1])  # 输出 2

# 数学运算
print(tensor_1d + 2)  # 输出 [3, 4, 5]

图像处理

在图像处理中,图像通常被表示为三维 Tensor,其中第一个维度表示通道(例如 RGB),第二个和第三个维度表示图像的高度和宽度。

# 加载图像并转换为 Tensor
image_tensor = torch.from_numpy(image).float().permute(2, 0, 1) / 255.0

深度学习

在深度学习中,Tensors 是构建神经网络的基础。PyTorch 提供了丰富的 API 来构建和训练神经网络。

# 定义一个简单的神经网络
class SimpleNet(torch.nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = torch.nn.Linear(784, 128)
        self.relu = torch.nn.ReLU()
        self.fc2 = torch.nn.Linear(128, 10)

    def forward(self, x):
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

# 实例化网络并打印结构
net = SimpleNet()
print(net)

更多信息

想要了解更多关于 PyTorch Tensors 的信息,请访问 PyTorch 官方文档

[center]Tensor Representation