signed

QiShunwang

“诚信为本、客户至上”

Tensorflow 函数 API 中 axis轴的理解

2021/5/15 1:04:39   来源:

Tensorflow 就是对 tensor进行一系列的操作,今天来讲解在很多tensorflow API中都存在的 axis 参数。

tensorflow 中的 axis 和 numpy 中的 axis 是一样的 

先来一张图

 

这里可以看到 axis = 0  是行数,axis = 1 是跨列的 ,一般化到高纬度的 tensor也是一样的,按照由外到内的顺序来判断 axis 的数值,外层的 axis = 0, 向内依次增加axis 的数值. 

这里引用一些tensorflow 中的 axis 实用的理解 

axis是跟shape相关的。
比如shape = [a, b, c, d],
axis = 0就是指a这个维度,
axis = 2就是指c这个维度,
axis = -1就是指d这个维度。(-1在python里指最后一个)

在 tf.argmax或 np.argmax中通常要指定axis。
对于二维,若shape=[height, width]时,tf.argmax(x, axis=0)则表示获得每一行的最大值的 index;tf.argmax(x, axis=1)表示获得每一列的最大值的下标。 此时 axis = -1同 axis=1情况。

对于高维,shape = [batch, height, width, channels]的情况,也是做同样的理解。
tf.argmax(x, axis=0)表示batch维的方向
tf.argmax(x, axis=1)表示height维的方向
tf.argmax(x, axis=2)表示width维的方向
tf.argmax(x, axis=3)表示channels维的方向
tf.argmax(x, axis=-1)同表示channels维的方向

numpy中的axis同Tensorflow中的axis意义一样。