Tensorflow:在一个集合中找到与另一个不同大小集合中的每个点最接近的点



我想找到一个集合(内部(中与另一个不同(较小(大小集合(边界(中的每个点最接近的点。我可以这样做:

interior = tf.random.uniform(shape=[18,3], minval=-1.0, maxval=1.0)
boundary = tf.random.uniform(shape=[12,3], minval=-1.0, maxval=1.0)
for i in range(12):
interior[tf.argmin(tf.reduce_sum(tf.math.squared_difference(interior, boundary[i]),1))]

有没有更快的方法?例如,没有For循环,但同时用于边界中的所有点。

我们可以使用广播,

indices = tf.argmin(tf.reduce_sum(tf.math.squared_difference(tf.expand_dims(interior, 1), tf.expand_dims(boundary, 0)), 2), axis=0)

然后

tf.gather(interior, indices)

相关内容

  • 没有找到相关文章

最新更新