📅  最后修改于: 2020-11-10 06:29:38             🧑  作者: Mango
张量是Pytorch的关键组件。可以说PyTorch完全基于张量。在数学中,数字的矩形数组称为度量。在NumPy库中,这些指标称为ndaaray。在PyTorch中,它被称为Tensor。张量是n维数据容器。例如,在PyTorch中,1d张量是向量,2d张量是度量,3d张量是立方体,4d张量是立方体向量。
Torch提供具有强大GPU加速功能的张量计算。我们必须熟悉张量数据结构才能使用PyTorch。这将成为神经网络实施之前的基本前提。
在深度学习中,Tensor是关键部分,我们可以看到围绕Tensor进行的众多讨论。甚至以Google的主要机器学习库(即TensorFlow)的名称出现。
在本教程中,我们将讨论张量是什么以及如何执行操作以及如何使用numpy在Python对其进行操作。
“一般情况下,排列在规则网格上的数字数组具有可变数量的轴称为张量。”
现在让我们对张量的表示法有一点了解
张量表示法类似于度量表示法。大写字母表示张量,带下标整数的小写字母表示张量内的标量值。
在物理和工程领域,作为一种工具,张量和张量代数得到广泛使用。可以说,这是机器学习中的一组技术,可以在张量方面描述深度学习模型的训练。
我们可以通过三种方式创建张量。每个人都有不同的createTensor方式并使用不同的方法。张量创建为
让我们看看如何创建张量
在这种情况下,您必须首先定义数组,然后将该数组在炬管的Tensor方法中作为参数传递。
例如
Import torch
arr = [[3, 4], [8, 5]]
pytensor = torch.Tensor(arr)
print(pytensor)
输出:
tensor ([[3., 4.],[8., 5.]])
要创建一个随机数张量,我们必须使用rand()方法,并使用所有方法创建一个张量,而您必须使用火炬的方法个()。为了生成随机数,将对rand使用焊炬的另一种方法,即,manual_seed具有0个参数。
例如
import torch
ones_t = torch.ones((2, 2))
torch.manual_seed(0) //to have same values for random generation
rand_t = torch.rand((2, 2))
print(ones_t)
print(rand_t)
输出:
tensor([[1., 1.],[1., 1.]])
tensor([[0.4962, 0.7682],[0.0885, 0.1320]])
要从numpy数组创建张量,我们必须创建一个numpy数组。创建numpy数组后,我们必须将其作为参数传递给from_numpy()。此方法将numpy数组转换为张量。
例如
import torch
import numpy as np1
numpy_arr = np1.ones((2, 2))
pytensor = torch.from_numpy(numpy_arr)
np1_arr_from_tensor = pytensor.numpy()
print(np1_arr_from_tensor)
输出:
[[1. 1.][1. 1.]]