tensorflow1.x:tf.nn.top_k()
tensorflow2.x:tf.math.top_k()

api功能为:
用于查找输入tensor的最大值。即输入tensor,沿着最后的一个维度独立查找k个最大元素,返回其值和索引下标。
函数参数列表为:
input, k=1, sorted=True, name=None

input是输入张量
k是需要查找的最大元素的个数
sorted如果为True则按照大小顺序排序
name名字

先总结在举例:
1.一定是沿着最后一个维度去搜索最大值;
2.返回两个,先返回搜索出来的最大值,再返回其索引;
3.最大值和索引是相同形状的。

用tf2举例说明:

1.一维
只有一个轴,只能在这个向量上搜索k个最大值

import tensorflow as tf
a = tf.constant([1,2,3,4,5,6])
b, c = tf.math.top_k(a,2)
print(b)
'''
打印输出:
<tf.Tensor: shape=(2,), dtype=int32, numpy=array([6, 5])>
'''
print(c)
'''
打印输出:
<tf.Tensor: shape=(2,), dtype=int32, numpy=array([5, 4])>
'''

2.二维
有两个轴,shape为(2,3),所以
第一回合(0,x),固定第一个维度为0,让最后一个轴x在0,1,2变化,搜索k个最大值
第二回合(1,x),固定第一个维度为1,让最后一个轴x在0,1,2变化,搜索k个最大值

import tensorflow as tf
a = tf.constant([[11,12,13],[21,22,23]])
b, c = tf.math.top_k(a,2)
print(b)
'''
打印输出:
<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[13, 12],[23, 22]])>
'''
print(c)
'''
打印输出:
<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[2, 1],[2, 1]])>
'''

3.三维
有三个轴,shape为(2,2,3),所以
第一回合(0,0,x),固定第一个轴为0,固定第二个轴为0,让最后一个轴在x,在0,1,2中变化,搜索k个最大值
第二回合(0,1,x),固定第一个轴为0,固定第二个轴为1,让最后一个轴在x,在0,1,2中变化,搜索k个最大值
第一回合(1,0,x),固定第一个轴为1,固定第二个轴为0,让最后一个轴在x,在0,1,2中变化,搜索k个最大值
第一回合(1,1,x),固定第一个轴为1,固定第二个轴为1,让最后一个轴在x,在0,1,2中变化,搜索k个最大值

import tensorflow as tf
a = tf.constant([[[111,112,113],[121,122,123]],[[211,212,213],[221,222,223]]])
b, c = tf.math.top_k(a,2)
print(b)
'''
打印输出:
<tf.Tensor: shape=(2, 2, 2), dtype=int32, numpy=
array([[[113, 112],[123, 122]],[[213, 212],[223, 222]]])>
'''
print(c)
'''
打印输出:
<tf.Tensor: shape=(2, 2, 2), dtype=int32, numpy=
array([[[2, 1],[2, 1]],[[2, 1],[2, 1]]])>
'''

tf.nn.top_k()用法相关推荐

  1. tf.nn.sampled_softmax_loss用法简单介绍

    tf.nn.sampled_softmax_loss用法简单介绍 在研究Skip-gram模型时遇到了采用方式的softmax,一时没有搞明白,下面做个小案例试一下. tf.nn.sampled_so ...

  2. tf.nn.sampled_softmax_loss用法详解

    tensorflow中具体的函数说明如下: tf.nn.sampled_softmax_loss(weights, # Shape (num_classes, dim) - floatXXbiases ...

  3. TensorFlow(七)tf.nn库

    ##tf.nn,tf.layers, tf.contrib模块有很多功能是重复的 下面是对三个模块的简述: tf.nn :提供神经网络相关操作的支持,包括卷积操作(conv).池化操作(pooling ...

  4. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  5. 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法

    [TensorFlow]tf.nn.softmax_cross_entropy_with_logits的用法 from:https://blog.csdn.net/mao_xiao_feng/arti ...

  6. tf.nn.embedding_lookup函数的用法

    tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素.tf.nn.embedding_lookup(params, ids):params可以是张量也可以是数组等 ...

  7. tf.nn.in_top_k的用法

    http://blog.csdn.net/uestc_c2_403/article/details/73187915 tf.nn.in_top_k组要是用于计算预测的结果和实际结果的是否相等,返回一个 ...

  8. tf.nn.rnn_cell.DropoutWrapper用法细节案例2

    -- coding: utf-8 -- import tensorflow as tf from tensorflow.contrib import rnn 导入 MINST 数据集 from ten ...

  9. tf.nn.rnn_cell.DropoutWrapper用法细节案例1

    前言:前面介绍了LSTM,下面介绍LSTM的几种变种 双向RNN Bidirectional RNN(双向RNN)假设当前t的输出不仅仅和之前的序列有关,并且 还与之后的序列有关,例如:预测一个语句中 ...

最新文章

  1. LeetCode刷题记录14——257. Binary Tree Paths(easy)
  2. 如何查看笔记本电脑配置参数_教你如何查看 MacBook 配置,超简单
  3. 机器学习中的欠拟合与过拟合
  4. AI算法 真的能算出人类的欲望吗?
  5. Nginx+MSM+Tomcat做负载均衡,session共享
  6. 围剿Sci-Hub力度升级!全球最大学术出版商:网址你也不要提,不然就发律师函...
  7. Nginx Location配置总结
  8. 分片上传,断点续传,还有秒传
  9. fiddler拦截response
  10. live555 分析—— OpenRtsp
  11. AT2164 AGC006C Rabbit Exercise
  12. 对象取值操作Object.values()
  13. a minimal solution(30,31,32)
  14. 公告栏模板php代码,destoon调用自定义模板及样式的公告栏_PHP教程
  15. cpu排行计算机专业,cpu性能天梯图,教您电脑cpu排行榜
  16. 美团外卖开放平台对接经验总结(一)
  17. (转) maven 依赖com.google.code.kaptcha
  18. EeePC各项硬件参数
  19. 拍摄失败导致照片像素低,学会这个可以一键高清修复
  20. 「DaoCloud 道客」郭峰:云原生加速金融信创发展

热门文章

  1. oracle启动卡住了,hsdb启动卡住问题
  2. excel转word_一键转换PDF、Excel、Word、PPT的神操作,可惜很多人还不会用
  3. 移动开发-混合App介绍
  4. photoshop如何做浮雕字教程
  5. 14、模板方法模式(Template Method)
  6. 工业互联网安全从身份认证和数据加密开始
  7. trunc函数 mysql_TRUNC函数的用法详解
  8. js跳转页面并使用post传参
  9. java输入矩阵规格和行数,输出矩阵
  10. Python3 list 排序函数详解