Pytorch笔记:维度dim的定义及其理解使用

import numpy as np

# 随机生成维度2*3*4的矩阵
a = np.random.randint(1, 100, [2, 3, 4])
a=
array([[[11,  6, 15, 41],
        [71,  8, 22, 44],
        [58, 30, 60, 27]],

       [[34, 66, 14, 41],
        [42, 37, 85, 20],
        [72, 21,  2, 41]]])
a.max(0)=
array([[34, 66, 15, 41],
       [71, 37, 85, 44],
       [72, 30, 60, 41]])
a.max(1)=
array([[71, 30, 60, 44],
       [72, 66, 85, 41]])
a.max(2)=
array([[41, 71, 60],
       [66, 85, 72]])

a.max(0)相当于a.max(dim=0)a.shape=(2,3,4),当dim=0时,则表示在2维度上进行操作,a[0][0][0]=11a[1][0][0]=34比较大小,a[0][0][1]=6a[1][0][1]=66比较大小,最终生成的矩阵维度是 3 × 4 3 \times 4 3×4

a.max(1)相当于a.max(dim=1),表示在3维度上进行操作,
a[0][0][0]=11a[0][1][0]=71a[0][2][0]=58比较大小,
a[0][0][1]=6a[0][1][1]=8a[0][2][1]=30比较大小

a.max(2)相当于a.max(dim=2),表示在4维度上进行操作,
a[0][0][0]=11a[0][0][1]=6a[0][0][2]=15a[0][0][3]=41比较大小,
a[0][1][0]=71a[0][1][1]=8a[0][1][2]=22a[0][1][3]=44比较大小,

再举例介绍sum():

a.sum(0)=
array([[ 45,  72,  29,  82],
       [113,  45, 107,  64],
       [130,  51,  62,  68]])
 a.sum(1)=
 array([[140,  44,  97, 112],
       [148, 124, 101, 102]])
a.sum(2)=
array([[ 73, 145, 175],
       [155, 184, 136]])

a.sum(0):维度 3 × 4 3 \times 4 3×4 a[0][0][0]+a[1][0][0]=11+34a[0][0][1]+a[1][0][1]=6+66
a.sum(1)a[0][0][0]+a[0][1][0]+a[0][2][0]=11+71+58a[0][0][1]+a[0][1][1]+a[0][2][1]=6+8+30
a.sum(2)a[0][0][0]+a[0][0][1]+a[0][0][2]+a[0][0][3]=11+6+15+41a[0][1][0]+a[0][1][1]+a[0][1][2]+a[0][1][3]=71+8+22+44

猜你喜欢

转载自blog.csdn.net/vincent_duan/article/details/120064420