根据tf.nn.top_k的输出生成稀疏张量

时间:2017-05-16 08:58:29

标签: tensorflow sparse-matrix

我希望有人可以帮助我。 我想从另一个张量的维度-1中的最高值做出张量,具有相同的大小,而其他值设置为零。

例如,给定大小为X的张量[2,3,4,5],假设我们要计算最后一个通道中的2个最大元素:

vals, indices = tf.nn.top_k(X, k=2, sorted=False)

显然,val和指数的形状为[2,3,4,2]。 现在,我们想要形成张量Y,形状为[2,3,4,5],而每个通道中只有2个值,索引位置的值为vals,其余值设置为零。我想我应该使用tf.sparse_to_dense,但我不知道究竟是怎么回事。

第二个问题:如果维度0是批次的数量并且它是动态的,即没有给出,那该怎么办:

X.shape = (?,3,4,5)

注意:这在制作空间稀疏层和稀疏自动编码器时非常有用。

提前致谢。

0 个答案:

没有答案