Torch - Torch 张量
张量是可以存储各种类型数据的多维数组。它们类似于 NumPy 数组,但具有其他功能,例如用于更快计算的 GPU。张量可用于以各种方式表示数据,即从向量到标量或矩阵。张量非常灵活;这种灵活性使张量在机器学习和深度学习的广泛应用中更加强大。
例如,在图像处理中,3D 张量可以表示具有宽度、高度和颜色通道的图像。在自然语言处理中,2D 张量可以表示重定向到句子的每一行,以及重定向到单词嵌入的每一列。
张量可以轻松地转换为其他数据结构,例如 Python 列表和 NumPy 数组,从而提供与现有代码库的集成。这与硬件加速相结合,使张量成为机器学习模型开发和部署的基本概念。
张量属性
张量具有不同的属性,这些属性指定有关属性的信息 −
size():张量的维度。
nDimension():张量的维数。
type():张量的数据类型。
我们可以使用以下方法访问这些方法属性 −
print(tensor:size()) print(tensor:nDimension()) print(tensor:type())
操作张量
以下是在 Torch 张量上可以执行的基本操作−
算术运算
矩阵运算
归约运算
元素级运算
Torch 张量函数概述
Torch 张量中的这些操作为困难的深度学习任务指定了元素计算。
函数 | 描述 |
---|---|
torch.add() | 添加两个张量 |
torch.sub() | 从另一个张量中减去一个张量 |
torch.mul() | 将两个数字相乘 |
torch.div() | 将一个张量除以另一个张量。 |
torch.mm() | 执行矩阵乘法。 |
torch.matmul() | 在矩阵中执行乘法和支持广播。 |
torch.t() | 2D 张量被转置。 |
torch.sum() | 对张量中的所有元素求和。 |
torch.mean() | 计算所有元素的平均值。 |
torch.max() | 将返回张量中的最大值。 |
torch.min() | 将返回张量中的最小值。 |
torch.pow() | 将计算每个元素的幂。 |
torch.sqrt() | 将计算每个元素的平方根。 |
torch.abs() | 返回每个元素的绝对值。 |
这些操作对于各种深度学习任务来说都很困难,因为它们允许高效和并行计算。 Torch Tensor 中的每个操作都为深度学习和数值计算提供了多功能和强大的功能。
创建张量
有几种方法可以在 Torch 中使用这些方法创建张量 −
从 Lua 表
我们可以使用 torch.Tensor() 直接从 Lua 表创建张量。这用于小型数据集,或者我们可以手动指定数据。
local data = {{2, 3}, {1, 2}} local tensor = torch.Tensor(data)
使用工厂方法
Torch 提供不同的工厂方法来创建具有特定值或形状的张量。一些常用方法是 −
torch.Tensor():创建一个未初始化的张量。
torch.zeros():创建一个用零填充的张量。
torch.ones()创建一个用一填充的张量。
torch.rand():创建一个具有随机值的张量。
以下几行在 Torch 中创建不同的 4*4 张量 −
local empty_tensor = torch.Tensor(4, 4) local zeros_tensors = torch.zeros(4, 4) local ones_tensor = torch.ones(4, 4) local ransom_tensor = torch.rand(4, 4)