我有张量流的情况。我想找到两个具有不同形状的二维张量的交集。
例子:
object_ids_ [[0 0]
[0 1]
[1 1]]
object_ids_more_07_ [[0 0]
[0 1]
[0 2]
[1 0]
[1 2]]
Run Code Online (Sandbox Code Playgroud)
我正在寻找的输出是:
[[0,0],
[0,1]]
Run Code Online (Sandbox Code Playgroud)
我遇到了“tf.sets.set_intersection”,tensorflow页面:https://www.tensorflow.org/api_docs/python/tf/sets/set_intersection
但无法对不同形状的张量执行此操作。我发现的另一个实现位于:
但很难将其复制到二维张量。
任何帮助将不胜感激,谢谢
subtract->abs->sum一种方法是对所有组合进行排序,然后获取与零匹配的索引。可以使用 来实现broadcasting。
a = tf.constant([[0,0],[0,1],[1,1]])
b = tf.constant([[0, 0],[0, 1],[0,2],[1, 0],[1, 2]])
find_match = tf.reduce_sum(tf.abs(tf.expand_dims(b,0) - tf.expand_dims(a,1)),2)
indices = tf.transpose(tf.where(tf.equal(find_match, tf.zeros_like(find_match))))[0]
out = tf.gather(a, indices)
with tf.Session() as sess:
print(sess.run(out))
#Output
#[[0 0]
#[0 1]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1138 次 |
| 最近记录: |