Tensorflow中的维度(参数axis的取值)问题

许多函数都会有一个axis参数,那么这个是怎么算的?

Tensorflow的Tensor意为张量。一般如果是维的数组ex: (0,1,2,3,4),就是一个数据,我们称之为标量Scalar;1维的数组([0,1,2,3,4]),称为向量Vector;2维的数组([[0,1,2],[3,4,5]]),称为矩阵Matrix;3维及以上的数组,称为张量Tensor

所以我们可以理解为一个空间就相当于()  中的n个盒子就相当于[ ] ,盒子里面又套了盒子相当于[[ ], [ ]](或者是叫套娃),当我们选择了axis = 0时,就是选择了() ,那么对于一个张量来说( )里面是并列的几个 [ ], [ ], [ ] 即([0, 1 ], [2, 3 ], [4, 5 ], ... ,[m, n ]),也就是操作会在这几个并列的[ ]上并列进行,表现出来就是0, 2, 4 ... m这几个数一起进行操作,1, 3, 5 ... n这几个一起操作,表现为以列来比较;对于选择axis = 1 时,就是选择了[ ],在[ ]里面进行操作,即对1, 2进行操作。

tf.argmax 是 tensorflow 用numpy的np.argmax实现的,它能给出某个tensor对象在某一维上的其数据最大值所在的索引值,常用于metric(如acc)的计算

0表示列,1表示行

例子如下:

A=tf.constant([2,20,30,3,6]) # Constant 1-D Tensor
tf.math.argmax(A) # output 2 as index 2 (A[2]) is maximum in tensor A
B=tf.constant([[2,20,30,3,6],[3,11,16,1,8],[14,45,23,5,27]])
tf.math.argmax(B,0) # [2, 2, 0, 2, 2]
tf.math.argmax(B,1) # [2, 2, 1]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值