发新帖

tf.argmax() 使用小例子

[复制链接]
527 11

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
本帖最后由 crayfish 于 2018-4-14 14:08 编辑

上午研究tf.argmax()的使用,做了个练习,分享一下。
(本人入门小白,大牛们见笑了)
import tensorflow as tf  
初始化一个三行四列矩阵,从均匀分布中取0-10间的随机值填入矩阵。
ranMatrix = tf.Variable(tf.random_uniform([3,4],minval=0,maxval=10)) 
分别求出矩阵中 列最大值的索引 和 行最大值的索引
MaxColumn = tf.argmax(input = ranMatrix,axis = 0)  
MaxLine = tf.argmax(input = ranMatrix,axis = 1)
初始化所有变量
sess = tf.Session() 
sess.run(tf.initialize_all_variables())  
输出矩阵
print(sess.run(ranMatrix)) 
[[ 1.61229014  4.98661518  3.85476351  4.64553595]
 [ 3.45184088  4.1815958   7.58010149  8.12338257]
 [ 6.54159784  1.9306457   4.3276763   3.04282904]]  
列最大值的索引
print(sess.run(MaxColumn))  
[2 0 1 1]   
行最大值的索引
print(sess.run(MaxLine))  
[1 3 0]
本楼点评(0) 收起

精彩评论12

舟3332  TF芽芽  发表于 2018-4-14 14:12:33 | 显示全部楼层
太赞了~ 一个小建议~ 这样些的话感觉不是特别直观。能引入一些个小例子就更好了~

比如我现在有一个二维的 tensor 第一维表示学生,第二维表示科目。举个例子:

小明
  语文 100
  英语 98
小红
  语文 93
  英语 99

那么 data = [ [100, 98], [93, 99] ]

问 tf.argmax(input=data, axis=0) 和 tf.argmax(input=data, axis=1)
分别表示什么意思,输出应该是什么?

答对的同学我会给你点赞哟~
本楼点评(2) 收起
  • crayfish嗯嗯,建议很给力。
    抢答一下试试:0 是 [0,1],表示语文和英语最高分索引,1是[0,1],表示小明和小红的最高分索引。
    兄弟很善于写教程啊,期待多发点入门的,一定跟帖拜读。
    2018-4-14 14:21 回复
  • 舟3332回复 crayfish : 我也在学习中。加油~一起努力。成为网红。哈哈
    2018-4-14 14:48 回复
chenglu  TF荚荚  发表于 2018-4-14 15:43:16 | 显示全部楼层
本楼点评(0) 收起
code空间  TF荚荚  发表于 2018-4-14 20:35:44 | 显示全部楼层
本楼点评(0) 收起
petter  TF荚荚  发表于 2018-4-14 20:57:42 | 显示全部楼层
新人来踩踩
本楼点评(0) 收起
pmixer  TF荚荚  发表于 2018-4-15 21:27:52 | 显示全部楼层
ps, tf 很多接口和 numpy 尽可能保持了一致性,类似实验也可以同时参考 numpy 的内容。。
本楼点评(1) 收起
竹杖芒鞋轻胜,  TF荚荚  发表于 2018-4-17 07:57:34 来自手机  | 显示全部楼层
舟3332 发表于 2018-4-14 14:12
太赞了~ 一个小建议~ 这样些的话感觉不是特别直观。能引入一些个小例子就更好了~

比如我现在有一个二维的  ...

求x轴最大值索引的含义是:每一个同学最高分的科目
求轴最大值索引的含义是:每一个同学最高分的科目
本楼点评(0) 收起
竹杖芒鞋轻胜,  TF荚荚  发表于 2018-4-17 07:58:27 来自手机  | 显示全部楼层
竹杖芒鞋轻胜, 发表于 2018-4-17 07:57
求x轴最大值索引的含义是:每一个同学最高分的科目
求轴最大值索引的含义是:每一个同学最高分的科目
...

求y轴最大值索引的含义是:每科目最高分的同学
本楼点评(0) 收起
libertatis  TF荚荚  发表于 2018-4-17 13:26:35 | 显示全部楼层
本帖最后由 libertatis 于 2018-4-17 13:31 编辑

tf.argmax用到最多的地方大概就是计算分类问题的准确率吧。
假设我们得到模型最后输出为h_hat, 标记为y_true, y_true和y_hat的shape=(batch_size, num_classes)。
  1. predictions = tf.argmax(y_hat, axis=1)  # shape=(batch_size, )
复制代码
j = predictions 表示第i个样本的预测标签为j。

当前batch预测正确的个数:
  1. num_correct_in_batch = tf.reduce_sum(
  2.          tf.sign(tf.cast(tf.equal(tf.argmax(y_hat, axis=1), tf.argmax(y_true, axis=1)), 'float'))
  3. )
复制代码
准确率:
  1. accuracy_in_batch = num_correct_in_batch / batch_size
复制代码


本楼点评(1) 收起
J.F.Liu  TF荚荚  发表于 2018-4-17 14:14:33 | 显示全部楼层
受教了  
本楼点评(0) 收起
ltslts  TF荚荚  发表于 2018-4-17 19:22:20 | 显示全部楼层
本楼点评(0) 收起
M丶Sulayman  TF豆豆  发表于 2018-4-18 17:35:49 | 显示全部楼层
受教
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表