如何在tensorflow中找到二维张量中的top k值
有没有办法找到Tensorflow中二维张量的顶部如何在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.
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]]