python中argmin函数_numpy 和tensorflow中argmax(),argmin()函数使用讲解
在使用argmax()函数时,比如在深度学习里面计算acc经常要用到这个参数,这个参数返回的是沿轴axis最大值的索引值,对于,tensorflow和numpy用法是一样的,此处我就用numpy来举例说明。
argmax(a, axis=None, out=None)
# a 表示array
# axis 表示指定的轴,默认是None,表示把array平铺,
# out 默认为None,如果指定,那么返回的结果会插入其中
1
2
3
4
对于axis默认为None的情况
首先我们看axis=None,也就是默认的时候:
二维array情况
a = np.array([[2,5,6],[7,6,1]])
print(np.argmax(a))
1
2
输出结果为3,因为a里面7是最大的,如果没有指定axis,默认就是None,相当于把array平铺为:[2,5,6,7,6,1],那么结果就是3,因为索引3对应的值最大,再来看一下三维的情况
### 三维array的情况
b = np.random.randint(20,size=[3,2,2])
print(b)
[[[ 0 16]
[14 5]]
[[16 6]
[19 2]]
[[11 11]
[ 5 7]]]
1
2
3
4
5
6
7
8
9
10
这个里面,19最大,把它平铺,19对应的索引就是6,那么np.argmax(b)就是6,经过验证输出就是6
对于给定axis的情况
如果给定axis,那么返回的就是沿着给定轴的最大索引,所谓沿着,我觉得就是投影,就是沿着这个轴投影,每一根投影线上最大值的索引。
二维情况分析
a = np.array([[2,5,6],[7,6,1]])
print(np.argmax(a,axis=1))
[2 0]
1
2
3
这次,我们给定axis=1,那么按照我们说的,就是沿着axis=1投影,看得出来,投影后我们只有两个值,因为[2,5,6]在一根投影线上,相当于就是我理解的一个投影线,因为这些值投影后重叠了,相当于只有一个值,所以[7,6,1]也是一个投影线,然后在这两个投影线取最大值的索引,对于[2,5,6]来说,最大值索引就是2,[7,6,1]最大值索引就是0,所以结果为[2,0]
然后,我们分析,当我们设置axis=0的时候,也就是沿着axis=0,投影,那么[2,7],[5,6],[6,1]分别在一个投影线上,所以结果为[1,1,0],经过验证确实是这样的。
三维情况分析
b = np.random.randint(20,size=[3,2,2])
print(b)
[[[ 0 16]
[14 5]]
[[16 6]
[19 2]]
[[11 11]
[ 5 7]]]
1
2
3
4
5
6
7
8
9
10
还是用上面的array来说,看一下结果:
print(np.argmax(b,axis=1))
[[1 0]
[1 0]
[0 0]]
1
2
3
4
同样的分析,我们指定了轴为1,那么也就是说我们沿着axis=1轴投影,这是一个体,那么我们投影线相当于有3*2条,其实在同一根投影线上是axis=0和axis=2的一个组合,比如axis=1中第一个上的和axis=2的第一个上的组合,也就是b[0,:,0],b[0,:,1],b[2,:,0],b[2,:,1],b[3,:,0],b[3,:,1]这六条线的索引对应的最大值,我们看他们分别为[ 0 14],[16 5],[16 19],[6 2],[11 5],[11 7],那么结果就是[[1,0],[1,0],[0,0]]。
所以其实和二维是一样的,所谓投影线,其实可以这样表示,我们去axis=0,那么我们遍历其他维度的大小,比如 arr[:,0,0],arr[:,0,1],也就是沿着那个轴,那么轴取全部值,然后再在投影线上找最大值对应索引。
总结
tensorflow里面的是一样的用法,同时argmin()用法相同,只是他是求最小值的索引。
python中argmin函数_numpy 和tensorflow中argmax(),argmin()函数使用讲解相关推荐
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
GirlFriend 在复现论文的时候,我发现她不太会将通用数学公式转化为张量运算公式,导致 tensorflow 无法通过并行的方式优化其论文复现代码的运行速率. 这里对给 GirlFriend 讲 ...
- python实现胶囊网络_在TensorFlow中实现胶囊网络
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 我们都知道,在许多计算机视觉任务中,卷积神经网络(CNN)的性能均 ...
- 【转】tensorflow中的batch_norm以及tf.control_dependencies和tf.GraphKeys.UPDATE_OPS的探究
笔者近来在tensorflow中使用batch_norm时,由于事先不熟悉其内部的原理,因此将其错误使用,从而出现了结果与预想不一致的结果.事后对其进行了一定的调查与研究,在此进行一些总结. 一.错误 ...
- tensorflow中张量、常量、变量、占位符
引言 从实例出发 #先导入TensorFlow import tensorflow as tf# Create TensorFlow object called hello_constant hell ...
- tensorflow中的sequence_loss_by_example
在编写RNN程序时,一个很常见的函数就是sequence_loss_by_example loss = tf.contrib.legacy_seq2seq.sequence_loss_by_examp ...
- Tensorflow 中添加正则化项
为防止网络过拟合,在损失函数上增加一个网络参数的正则化项是一个常用方法,下面介绍如何在Tensorflow中添加正则化项. tensorflow中对参数使用正则项分为两步: step1: 创建一个正则 ...
- TensorFlow中设置学习率的方式
目录 1. 指数衰减 2. 分段常数衰减 3. 自然指数衰减 4. 多项式衰减 5. 倒数衰减 6. 余弦衰减 6.1 标准余弦衰减 6.2 重启余弦衰减 6.3 线性余弦噪声 6.4 噪声余弦衰减 ...
- python tensorflow tf.Session().run()函数(运行操作并评估“fetches”中的张量)
参考文章:TensorFlow-sess.run() 当我们构建完图(可能是我们pre_process后生成的图片?NoNoNo,它只是指tensorflow框架的一种设计理念--计算流图)后,需要在 ...
- python中的np array函数_numpy中的np.ascontiguousarray()函数
"Return a contiguous array (ndim >= 1) in memory (C order)." 用途 ascontiguousarray函数将一个内 ...
最新文章
- 模板 - LCA最近公共祖先(倍增法、Tarjan、树上差分、LCA优化的次小生成树)
- 【Docker学习笔记(三)】Hello world!
- springmvc二十八:springmvc使用common-fileUpload实现文件上传
- 【小白学习C++ 教程】八、在C++指针传递引用和Const关键字
- Oracle 左连接、右连接、全外连接、(+)号作用
- jQuery Mobile滚动事件
- linux压缩文件命令_Linux基础篇(二)--Linux常用命令
- 大数据环境下数据质量指标体系
- 2021-03-04
- 电磁场与电磁波第四版 课后习题
- Mac系统升级Git
- ffmpeg安装及在java中的使用案例
- select into from 和 insert into select的使用
- 抖音通过什么方式变现,抖音变现方式分别有什么
- 更换一个已到使用寿命的墨盒--Epson
- 如何从面试官中知道自己需要准备什么
- Javaweb酒店预约管理系统(框架SpringBoot+Vue)
- python从邮箱获取指定邮件_用python提取并统计指定邮箱里的特定邮件 | 学步园
- PC安装安卓系统模拟器
- asp.net 将中文翻译成拼音(VS2008)