pytorch tensor 张量常用方法介绍

1.  view( )函数

PyTorch 中的view( )函数相当于numpy中的resize( )函数,都是用来重构(或者调整)张量维度的,用法稍有不同。

>>> import torch
>>> re = torch.tensor([1, 2, 3, 4, 5,  6])
>>> result = re.view(3,2)
>>> result
tensor([[1, 2],
        [3, 4],
        [5, 6]])

i.e.view(3, 2)将张量重构成了3x2维的张量。

view(-1)

>>> import torch
>>> re = torch.tensor([[1, 2],
        	    [3, 4],
                      [5, 6]])
>>> result = re.view(-1)
>>> result
tensor([1, 2, 3, 4, 5, 6])

i.e.view(-1)将张量重构成了1维的张量。

view(-1, 参数b)

>>> import torch
>>> re = torch.tensor([1, 2, 3, 4, 5,  6])
>>> result = re.view(-1, 2)
>>> result
tensor([[1, 2],
        [3, 4],
        [5, 6]])

i.e.torch.view(-1, 参数b),则表示在参数a未知,参数b已知的情况下自动补齐行向量长度,在这个例子中b=3,re总共含有6个元素,则a=6/2=3。

 2. squeeze()函数

squeeze()函数的功能是维度压缩。返回一个tensor(张量),其中 input 中大小为1的所有维都已删除。

举个例子:如果 input 的形状为 (A×1×B×C×1×D),那么返回的tensor的形状则为 (A×B×C×D)

当给定 dim 时,那么只在给定的维度(dimension)上进行压缩操作。

  3. no_grad()函数

torch.no_grad() 一般用于神经网络的推理阶段, 表示张量的计算过程中无需计算梯度

  4. max()函数

torch.max(input, dim, max=None, max_indices=None) -> (Tensor, LongTensor)

返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引。

  5. eq()函数

torch.eq(input, other, *, out=None)

Parameters(参数):
input :必须是一个Tensor,该张量用于比较
other :可以是一个张量Tensor,也可以是一个值value
return(返回值):返回一个Boolean类型的张量,对两个张量Tensor进行逐元素的比较,若相同位置的两个元素相同,则返回True;若不同,返回False。

x = torch.tensor([[1, 2], [3, 4]])
y = torch.tensor([[1, 1], [3, 3]])
print(x)
print(y)
out = torch.eq(x, y)
print(out)

 一般用法:

acc += torch.eq(predict_y, val_labels).sum().item()

   6. item()函数

.item()方法返回张量元素的值

注:张量中只有一个元素才能调用该方法,多个元素会报错:

posted @ 2022-11-10 09:49  wangssd  阅读(175)  评论(0编辑  收藏  举报