张量的部分操作

    科技2025-04-30  17

    torch.pow():

    对输入张量的每个元素进行幂次运算:

    a = torch.randint(1,6,(2, 3)) print(a) print(torch.pow(a,2))

    输出:

    unsqueeze()、squeeze():

    unsqueeze():维度扩增,对张量的某一维上增加一维:

    squeeze():张量降维,将某一维去掉(维度唯一)

    a = torch.randint(1,6,(2, 3)) print(a) print(a.unsqueeze(1)) print(a.unsqueeze(1).shape)

    输出:

    view():

    改变张量的维度,可以将一个多维张量变为一个一维张量,也可以将一维张量重写为多维张量

    a = torch.randint(1,6,(2, 3)) print(a) print(a.view(2*3)) print(a.view(3, 2))

    输出:

     

    max()、min()、indices:

    用来查找张量某一维的最大值、最小值、及对应索引,最大值最小值的values张量会比之前的张量少一维,因为求了最大、最小值:

    a = torch.randint(1,6,(2, 3)) print(a) print('^'*30) print(a.max(1)) print('*'*30) print(a.max(1).indices)

    输出:

    torch.topk():

    沿着给定维度返回指定张量的K个最大值。

    a = torch.randint(1, 11, (2,3)) print(a) values, indices= torch.topk(a, 2) print(values) print(indices)

    输出:

    Processed: 0.016, SQL: 8