axis理解

☆樱花仙子☆ 提交于 2020-03-04 00:49:49

目录

1. Axis的数量即为数据的维度

2. 从内到外"扒开"张量

3. 列几个对axis进行操作的tensorflow op,加深印象(argmax/gather)

 

1. Axis的数量即为数据的维度

axis(轴,维度)

在数学和物理中,维度通常被解释为空间中描述一个位置所需的最少坐标个数(基底的位数)。

然而在 numpy 中 axis 的个数就是数据的维度,体现在具体数据上就是括号的层数

[[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]]  —— axis=2,二维Tensor

可以认为有多少个"["维度就为几,“轴”是从外向里的,axis从外层到内层依次增大(0,1…)

2. 从内到外"扒开"张量

input = [
    [[1,2,3,4], [2,3,4,1]],
    [[1,2,9,4], [2,0,6,1]],
    [[1,0,3,4], [2,3,5,1]],
]  # 3x2x4

axis = 0 :
 沿着axis=0,划分出单个元素,就是最外层中括号括住的元素
 元素个数:3,每个元素的shape=2x4,如下:
 [[1,2,3,4], [2,3,4,1]] / [[1,2,9,4], [2,0,6,1]] / [[1,0,3,4], [2,3,5,1]]

axis = 1:
 单个元素为中间层的中括号包围的元素,最外层的中括号仍存在
 元素个数:2,每个元素的shape=3x4
 [[1,2,3,4],
  [1,2,9,4],
  [1,0,3,4]]

axis = 2:
 单个元素为最内层的中括号包围的元素,最外层和中间层的中括号仍存在
 元素个数:4,每个元素的shape=3x2
 [[1,2],
  [1,2],
  [1,2]]  

 3. 列几个对axis进行操作的tensorflow op,加深印象(argmax/gather)

一、假设argmax操作:返回对应axis的最大值
就是比对由指定axis划分的子tensor中各元素的对应值,比较出最大值

如axis=0,则比较下面三个子tensor的对应点
[[1,2,3,4], [2,3,4,1]] / 
[[1,2,9,4], [2,0,6,1]] / 
[[1,0,3,4], [2,3,5,1]]

结果:[[1,2,9,4], [2,3,6,1]]


二、gather
从指定axis维度获取指定索引的子tensor
例:3x3x2x3
input =[ 
        [ [[1, 1, 1], [2, 2, 2]],
          [[3, 3, 3], [4, 4, 4]],
          [[5, 5, 5], [6, 6, 6]]  ],
        [ [[7, 7, 7], [8, 8, 8]],
          [[9, 9, 9], [10, 10, 10]],
          [[11, 11, 11], [12, 12, 12]]  ],
        [ [[13, 13, 13], [14, 14, 14]],
          [[15, 15, 15], [16, 16, 16]],
          [[17, 17, 17], [18, 18, 18]]  ]
       ] 
1、axis = 0, indices=[0.2]
   axis = 0轴上的子tensor个数为:3, 子tensor shape= 3x2x3
   indices=[0,2],表示获取第0个和第2个子tensor,即:
    [ [[1, 1, 1], [2, 2, 2]],
          [[3, 3, 3], [4, 4, 4]],
          [[5, 5, 5], [6, 6, 6]]  ],
    和  [ [[13, 13, 13], [14, 14, 14]],
          [[15, 15, 15], [16, 16, 16]],
          [[17, 17, 17], [18, 18, 18]]  ]

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!