【发布时间】:2019-11-05 05:37:36
【问题描述】:
这是我的可重现代码:
tf_ent = tf.Variable([ [9.96, 8.65, 0.99, 0.1 ],
[0.7, 8.33, 0.1 , 0.1 ],
[0.9, 0.1, 6, 7.33],
[6.60, 0.1, 3, 5.5 ],
[9.49, 0.2, 0.2, 0.2 ],
[0.4, 8.45, 0.2, 0.2 ],
[0.3, 0.2, 5.82, 8.28]])
tf_ent_var = tf.constant([True, False, False, False, False, True, False])
我想保留tf_ent 中tf_ent_var 中对应索引为True 的行,并使其余行在整个矩阵中最小化。
所以预期的输出是这样的:
[[9.96, 8.65, 0.99, 0.1 ],
[0.1, 0.1, 0.1 , 0.1 ],
[0.1, 0.1, 0.1, 0.1 ],
[0.1, 0.1, 0.1, 0.1 ],
[0.1, 0.1, 0.1, 0.1 ],
[0.4, 8.45, 0.2, 0.2 ],
[0.1, 0.1, 0.1, 0.1 ]]
知道我该怎么做吗?
我试图从掩码张量中获取索引,然后使用 tf.gather 来完成这个,但是我得到的索引是这样的[[0], [6]],这是有道理的,因为它给出了一个向量的索引。
【问题讨论】:
-
当你想要的行和你不想要的行中都存在0时,“整个矩阵中的最小值”0.1如何?
-
@ImperishableNight,我不得不让矩阵变小,忘记替换零:|,我会更新我的问题
标签: python tensorflow slice