np.argmax(input,axis)和tf.argmax(input,axis)分别是numpy和TensorFlow底下的求最大值索引的方法,用法基本一致,只有默认情况下有细微差别,以及传入的值略有不同,分别是array和tensor。

说白了,是不同模块下的相同方法。。只是不同模块下,数据类型不一致而已。。

一、np.argmax(input,axis)的使用

tf.argmax(input,axis),根据axis取值的不同返回每行或者每列(在axis上比较)最大值的索引。

1.数组长度一致时,2维数组:

test = np.array([ [1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]])

print(np.argmax(test))

np.argmax(test, 0)

np.argmax(test, 1)

#输出:

9

[3, 3, 1]

[2, 2, 0, 0]

axis = 0:列最大索引

axis=0时,比较每一列元素,记录每一列最大元素所在的索引,最后输出每一列最大元素所在的索引数组。

test[0] = array([1, 2, 3])

test[1] = array([2, 3, 4])

test[2] = array([5, 4, 3])

test[3] = array([8, 7, 2])

# output   :       [3, 3, 1]

axis = 1:行最大索引

axis=1时,比较每一行元素,记录每一行最大元素所在的索引,最后返回每一行最大元素所在的索引数组。

test[0] = array([1, 2, 3])  #2

test[1] = array([2, 3, 4])  #2

test[2] = array([5, 4, 3])  #0

test[3] = array([8, 7, 2])  #0

2.数组长度一致时,n维数组:数组的shape很重要!

test = np.array([

[[19,

2, 3],

[2, 21, 2]],

[[5, 4, 3],

[1, 2, 3]],

[[5, 4, 6],

[1, 2, 3]],

[[15, 14, 13],

[11, 12, 3]]

])

# 本例中,

# test形状是4*2*3,这个特别重要,axis=0,就是4个同一位置的元素比较,axis=1就是2个元素比较,axis=2就是3个元素比较。

# 再举个例子,

# test形状是3*7*5*10,这个特别重要,axis=0,就是3个同一位置的元素比较,axis=1就是7个元素比较,axis=2就是5个元素比较,axis=3就是10个元素比较。

axis=None或省略

print(np.argmax(test, axis=None))

#输出:4

# axis=None和省略结果相同,直接当成一维数组来查,21最大,是第5个元素,从0开始,对应的下标是4。

axis=0:

print(np.argmax(test, 0))

#输出:

[[0 3 3]

[3 0 1]]

# axis = 0,其实是在第0维,也就是shape的第一个数4对应的那一维,比较4个元素的值。输出的是shape除了4之外的2*3的数组。

# 本例中,第一个元素0是4个元素19,5,5,15比较时max值19对应的索引,第二个元素3是4个元素2,4,4,14比较时max值14对应的索引……

axis = 1:

print(np.argmax(test, 1))

#输出:

[[0 1 0]

[0 0 0]

[0 0 0]

[0 0 0]]

# axis = 1,其实是在第1维,也就是shape的第二个数2对应的那一维,比较2个元素的值。输出的是shape除了2之外的4*3的数组。

# 本例中,第一个元素0是2个元素19,2比较时max值19对应的索引,第二个元素1是2个元素2,21比较时max值21对应的索引,第三个元素0是2个元素3,2比较时max值3对应的索引……

axis = 2:

print(np.argmax(test, 2))

#输出:

[[0 1]

[0 2]

[2 2]

[0 1]]

# axis = 2,其实是在第2维,也就是shape的第三个数3对应的那一维,比较3个元素的值。输出的是shape除了3之外的4*2的数组。

# 本例中,第一个元素0是3个元素19,2,3比较时max值19对应的索引,第二个元素1是3个元素2,21,2比较时max值21对应的索引,第三个元素0是3个元素5, 4, 3比较时max值5对应的索引,第四个元素2是3个元素1, 2, 3比较时max值3对应的索引……

3.数组长度不一致时:

axis最大值为数组维数-1,超过则报错。参考n维数组的例子,就是在每一个axis上比较的,很明显超过维度没有意义。

不一致时,axis=0的比较也就变成了每个数组的和的比较。【这个不理解,有问题?】

二、tf.argmax(input,axis)的使用

test = tf.Variable([

[1, 2, 3],

[2, 13, 4],

[5, 4, 3],

[1, 2, 7]])

print(tf.argmax(test))  # 这个与np.argmax不同,默认axis=None或省略,与axis=0的结果相同。

print(tf.argmax(test, 0))  # 与np.argmax相同,tensor形式

print(tf.argmax(test, 1)) # 与np.argmax相同,tensor形式

# 输出:

tf.Tensor([2 1 3], shape=(3,), dtype=int64)

tf.Tensor([2 1 3], shape=(3,), dtype=int64)

tf.Tensor([2 1 0 2], shape=(4,), dtype=int64)

参考:

pythonargmaxaxis1_np.argmax(input,axis)和tf.argmax(input,axis)使用相关推荐

  1. Tensorflow中的tf.argmax()函数

    转载出处:http://www.cnblogs.com/willnote/p/6758953.html 官方API定义 tf.argmax(input, axis=None, name=None, d ...

  2. tf.argmax函数说明

    函数说明: tf.argmax(input,axis=None,name=None,dimension=None,output_type=tf.int64 )  参数: input:输入矩阵 axis ...

  3. tf.argmax函数

    原文链接:https://blog.csdn.net/u013580539/article/details/79339250 关于tf.argmax,我看到网上的资料有些杂乱难以理解,所以写这篇文章. ...

  4. tensorflow基础(2)-tf.argmax和axis

    tf.argmax() 这个函数的主要功能是返回最大值所在的坐标.主要用在分类的时候,如果只是简单的输出,只是对于每一类可能性的预测的输出,但是我要要的输出必须是确定的哪一类,所以需要确定里面的最大的 ...

  5. 【Tensorflow】 tf.equal(tf.argmax(y, 1),tf.argmax(y_, 1))用法

    [Tensorflow] tf.equal(tf.argmax(y, 1),tf.argmax(y_, 1))用法 作用:输出正确的预测结果 利用tf.argmax()按行求出真实值y_.预测值y最大 ...

  6. tf.argmax()的用法

    tf.argmax()的主要功能是找出最大值并返回索引,注意是索引.下面是主要的内参数 tf.argmax(input,axis=None,name=None,dimension=None,outpu ...

  7. tf.argmax tf2版本

    对于tf.argmax,这个函数有点奇怪,axis=0指的是计算矩阵每列的最大值索引,axis=1计算行最大值索引 与numpy 相同 import tensorflow as tf import n ...

  8. tf.argmax()的详细用法

    tf.argmax(data, axis=None) 用tensorflow 做 mnist分类时,用到这个接口,于是就研究了下这个接口的用法: 如果是一维数组呢? data = tf.constan ...

  9. tensorflow笔记:tf.argmax()和tf.equal()的使用

    原文:https://blog.csdn.net/abc13526222160/article/details/85299901 1.tf.argmax(vector, 1) 返回的是vector中的 ...

最新文章

  1. XCTF-Web-高手区-easytornado
  2. [vue] vue2.0不再支持v-html中使用过滤器了怎么办?
  3. String 字符串
  4. Android摄影App,这20款摄影APP,让你的照片飞上天!
  5. 嵌入式Linux应用开发
  6. HTML如何实现简单登录页面
  7. Krpano全景漫游开发手册
  8. 网页怎么预先加载模型_修补预先训练的语言模型
  9. 【程序源代码】微信小程序商城管理系统(java后台+小程序)
  10. nim博奕和巴什博奕
  11. 基于esp32-cam毕设设计兼日志(1)
  12. 网络基础之ACL(访问控制列表)
  13. 电动车NFC一键启动(仪表总成、电源锁)_Ci522 Ci523_小体积超低成本13.56M非接触式读写器芯片
  14. 南海数据统筹局 《大数据》作者怎么看?
  15. 盘点国产数据库年终排行(2021)
  16. 语音 视频 质量测试软件,DxOMARK官方发布视频,了解如何测试手机音频质量
  17. VB基础版版务处理_20050502
  18. DeerFU.管理系统隆重上市《免费版》
  19. 兰州交通大学博文学院计算机协会生日,兰州交通大学博文学院微博协会首届wps办公软件大赛(孙威虎).doc...
  20. android RXJava入门(Rxjava1.0)

热门文章

  1. 从硬盘安装在XP下装红旗linux双系统
  2. 关闭和启动Oracle的几种方法总结
  3. JVM虚拟机-Class文件之访问标志
  4. ubuntu14.04如何更换阿里云源
  5. python assert
  6. matlab幂次变换代码,常用的一些图像处理Matlab源代码
  7. JavaScript中的prototype(Notes)
  8. Asia Yokohama Regional Contest 2018 K题 - Sixth Sense(思维加贪心加二分)
  9. Codeforces 558(C、D、E)总结
  10. AC日记——爱改名的小融 codevs 2967