对于tf.argmax的理解

写一下理解。

1. 举例

现在一个2x3x4的张量a:

a = [
    [[1, 2, 3, 4],
     [4, 3, 2, 1],
     [2, 2, 2, 2]],
    [[2, 2, 2, 2],
     [1, 2, 3, 4],
     [4, 3, 2, 1]]
]

根据a的内容,我们现在假设现在有2个坐标系,每个坐标系有3个坐标轴,每个坐标轴上有4个点,每个点的大小可能是1,2,3,4,

第一个坐标系:

x轴点大小分别是1, 2, 3, 4;

y轴点大小分别是4, 3, 2, 1;

z轴点大小分别是2, 2, 2, 2;

第二个坐标系:

x轴点大小分别是2, 2, 2, 2;

y轴点大小分别是1, 2, 3, 4;

z轴点大小分别是4, 3, 2, 1;

(1)我们首先比较两个坐标系点的大小信息,如果第一个坐标系对应的点大,就标0,第二个大就标1,得到:

x轴点大小分别是1, 0, 0, 0;

y轴点大小分别是0, 0, 1, 1;

z轴点大小分别是1, 1, 0, 0;

(2)我们再比较每个坐标系里面不同坐标轴的点大小信息,x轴大标0,y轴大标1,z轴大标2,得到:

第一个坐标系:

1, 1, 0, 0

第二个坐标系:

2, 2, 1, 1

(3)我们再比较每个轴自己最大的点,位于第一个位置标0,位于第二个位置标1,位于第三个位置标2,位于第四个位置标3,得到:

第一个坐标系:

3,

0,

0,

第二个坐标系:

0,

3,

0,

2. 归纳

对于tensorflow来说,维度数字越低,包含的信息越多,类比上述我们可以说0维包含两个坐标系,1维包含3个坐标轴,2维包含4个点

就像是两个苹果比较完只留下一个大的,在哪个维度比较完,哪个维度就被降维了

所以tf.argmax(a,0),就是在坐标系比较,0维度被降维,留下3个坐标,轴和4个坐标点的信息,得到的是:

[[1, 0, 0, 0],[0, 0, 1, 1],[1, 1, 0, 0]],维度1x3x4,

tf.argmax(a,1),就是在坐标轴比较,1维度被降维,留下2个坐标系和4个坐标点的信息,得到的是:

[[1, 1, 0, 0], [2, 2, 1, 1]],维度2x1x4

tf.argmax(a,2),就是在坐标点比较,2维度被降维,留下2个坐标系和3个坐标轴的信息,得到的是:

[[3,0,0],[0, 3, 0]],维度2x3x1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值