我尝试将2DTensor中的值舍入为给定列表中最接近的值,例如:
# this is eager, but the solution must work with non eager tensors
data_to_round = tf.constant([[0.3, 0.4, 2.3], [1.4, 2.2 ,55.4]])
possible_rounding_results = [1,2,3,4,5,6]
# TODO: round `data_to_round` to nearest values from `possible_rounding_results`
# expected output: [[1, 1, 2], [1, 2 , 5]]
我正在使用tf.math.subtract
,tf.math.abs
和tf.argmin
,以便使用for循环找到列表之间的最小绝对差的索引,但后来我未能将它们组合回Tensor,并且它根本不适用于2D数组只有1D。我不确定这是否是解决这个问题的正确方法。
由于我完全缺乏使用TensorFlow的经验,我不知道如何解决这个问题,我只是想提前回答这个肤浅的问题。
1条答案
按热度按时间ttcibm8c1#
如果我理解正确的话,你可以试试这样的:
最后一个值是6而不是5(如您的示例中所示),因为6比5更接近55.4。如果你想使用
tf.constant([[0.3, 0.4, 2.5], [1.4, 2.2, 5.4]])
,你会得到: