其他分享
首页 > 其他分享> > pytorch框架语法学习(1)——多维矩阵(tensor)

pytorch框架语法学习(1)——多维矩阵(tensor)

作者:互联网

pytorch框架语法学习(1)——多维矩阵(tensor)
在运用python编程时,总会遇到tensor张量,例如reshape(2,3,4,4)等多维矩阵。下面进行详细讲解。
下面展示一些 内联代码片

// 生成一个(2,3,4,4)
import torch
mask=torch.arange(96)
mask = mask.reshape(2,3,4,4)
print(mask)

结果如下:
tensor([[[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]],

     [[16, 17, 18, 19],
      [20, 21, 22, 23],
      [24, 25, 26, 27],
      [28, 29, 30, 31]],

     [[32, 33, 34, 35],
      [36, 37, 38, 39],
      [40, 41, 42, 43],
      [44, 45, 46, 47]]],


    [[[48, 49, 50, 51],
      [52, 53, 54, 55],
      [56, 57, 58, 59],
      [60, 61, 62, 63]],

     [[64, 65, 66, 67],
      [68, 69, 70, 71],
      [72, 73, 74, 75],
      [76, 77, 78, 79]],

     [[80, 81, 82, 83],
      [84, 85, 86, 87],
      [88, 89, 90, 91],
      [92, 93, 94, 95]]]])

从结果可以看出,(2,3,4,4)tensor可以理解为矩阵的嵌套,最基本的形状为4x4的矩阵,3个4x4的矩阵构成一级嵌套矩阵,2个一级嵌套矩阵构成一个二级嵌套矩阵。如果这里有更多的维度,假若为(5,2,3,4,4),则这里表示的是5个二级嵌套矩阵组成的三级矩阵。这个三级矩阵有5行3列组成,其中每个元素为(3,4,4)的矩阵。(3,4,4)是由3个(4,4)的矩阵组成的矩阵。具体参见以下程序:

// An highlighted block
mask=torch.arange(48)
mask = mask.reshape(3,4,4)
print(mask)

结果如下:
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]],

    [[16, 17, 18, 19],
     [20, 21, 22, 23],
     [24, 25, 26, 27],
     [28, 29, 30, 31]],

    [[32, 33, 34, 35],
     [36, 37, 38, 39],
     [40, 41, 42, 43],
     [44, 45, 46, 47]]])

怎么取用其中的元素呢?
这里还以(2,3,4,4)矩阵为例进行说明:
下面展示一些 内联代码片

// An highlighted block
#选取(2,3,4,4)矩阵的第0行,即以4x4矩阵作为元素构成的2行3列矩阵中的第0行。
mask[0]
print(mask[0])
#结果如下所示
#选取(2,3,4,4)矩阵的第0行的第1个元素(这里的元素代表4x4的矩阵)
mask[0][1]
print(mask[0][1])
#选取(2,3,4,4)矩阵的第0行的第1个元素(这里的元素代表4x4的矩阵)矩阵的第2行。
mask[0][1][2]
print(mask[0][1][2])
#选取(2,3,4,4)矩阵的第0行的第1个元素(这里的元素代表4x4的矩阵)矩阵的第2行中的第3个元素。

结果如下:
在这里插入图片描述在这里插入图片描述

标签:tensor,矩阵,元素,mask,print,pytorch,多维,4x4
来源: https://blog.csdn.net/qq_37993640/article/details/118584423