上一讲深度学习图像处理01:图像的本质,我们了解到图像处理的本质是对矩阵的操作。这一讲,我们讲介绍深度学习图像处理的基本数据类型:Tensor类型。
在深度学习领域,Tensor是一种核心的数据结构,用于表示和处理数据。本文将详细介绍Tensor数据类型,包括其定义、如何创建和操作Tensors,特别是在图像处理和深度学习中的应用。我们将通过实例、数学公式和Python代码来深入理解Tensor。
1. 什么是Tensor?
Tensor,简而言之,是一个多维数组,是标量、向量和矩阵的高维推广。在深度学习中,Tensors是算法的基本构建块,用于表示和处理数据,如图像、声音或文本。
- 0维Tensor:标量(Scalar),例如一个数字。
- 1维Tensor:向量(Vector),例如一个数字列表。
- 2维Tensor:矩阵(Matrix),例如二维数组。
- n维Tensor:更高维度的数组。
2. Tensor数据基本操作
2.1 Tensor的创建
以下是使用PyTorch创建Tensors的一些基本例子:
import torch
# 创建一个空的Tensor
x = torch.empty(5, 3)
print("Empty Tensor:\n", x)
# 创建一个随机初始化的Tensor
x = torch.rand(5, 3)
print("Random Tensor:\n", x)
# 创建一个全为0,类型为long的Tensor
x = torch.zeros(5, 3, dtype=torch.long)
print("Zero Tensor:\n", x)
# 创建一个直接从数据的Tensor
x = torch.tensor([5.5, 3])
print("Tensor from data:\n", x)
运行结果:
Empty Tensor:
tensor([[-2.2140e-26, 8.0995e-43, -2.2140e-26],
[ 8.0995e-43, -2.2140e-26, 8.0995e-43],
[-2.2140e-26, 8.0995e-43, -2.2140e-26],
[ 8.0995e-43, -2.2140e-26, 8.0995e-43],
[-2.2140e-26, 8.0995e-43, -2.2140e-26]])
Random Tensor:
tensor([[0.0027, 0.5