我希望有人可以帮助我。 我想从另一个张量的维度-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)
注意:这在制作空间稀疏层和稀疏自动编码器时非常有用。
提前致谢。