目录
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]] ]
来源:CSDN
作者:友人小A
链接:https://blog.csdn.net/zmj1582188592/article/details/104638894