Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在tensorflow中找到二维张量中的top k值_Tensorflow_Matrix_Tensor - Fatal编程技术网

如何在tensorflow中找到二维张量中的top k值

如何在tensorflow中找到二维张量中的top k值,tensorflow,matrix,tensor,Tensorflow,Matrix,Tensor,有没有办法找到Tensorflow中二维张量的顶部k值 我可以将tf.nn.top_k用于一维张量,但它不能用于二维张量。我有一个大小未知的二维张量,有没有办法找到顶部的k值及其索引 非常感谢。你可以这样做的一种方法是重塑整个事物,比如xx=np。重塑(x,(-1),,然后类似x[:k]的东西就可以了?你可以在tf.nn.top\k()之前将矩阵重塑为一维张量,然后从一维指数计算二维指数: x=tf.随机均匀((3,4)) x_形状=tf形状(x) k=3 top_值,top_指数=tf.nn.

有没有办法找到Tensorflow中二维张量的顶部
k

我可以将
tf.nn.top_k
用于一维张量,但它不能用于二维张量。我有一个大小未知的二维张量,有没有办法找到顶部的
k
值及其索引


非常感谢。

你可以这样做的一种方法是重塑整个事物,比如
xx=np。重塑(x,(-1),
,然后类似
x[:k]
的东西就可以了?

你可以在
tf.nn.top\k()
之前将矩阵重塑为一维张量,然后从一维指数计算二维指数:

x=tf.随机均匀((3,4))
x_形状=tf形状(x)
k=3
top_值,top_指数=tf.nn.top_k(tf.reformate(x,(-1),k)
顶部索引=tf.stack((顶部索引//x形状[1]),(顶部索引%x形状[1]),-1)
使用tf.Session()作为sess:
mat,val,ind=sess.run([x,top\u值,top\u索引])
印刷品(垫子)
# [[ 0.2154634   0.52707899  0.29711092  0.74310601]
#  [ 0.61274767  0.82408106  0.27242708  0.25479805]
#  [ 0.25863791  0.16790807  0.95585966  0.51889324]]
打印(val)
# [ 0.95585966  0.82408106  0.74310601]
打印(ind)
# [[2 2]
#  [1 1]
#  [0 3]]