gpt4 book ai didi

tensorflow - 检查 Tensorflow(批处理版本)中张量列表中存在的值的好方法是什么?

转载 作者:行者123 更新时间:2023-12-04 20:29:00 26 4
gpt4 key购买 nike

Values Tensor: [[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]]
Query Tensor: [[1,2,8], [0,0,6], [11,12,13]]
Reult tensor: [[True, True, False],[False, False, True],[True, True, True]]

如果我有一个值张量和查询张量,我想一一检查值张量中是否存在查询张量,然后返回结果张量。
请问我们是否有基于向量的方法来做到这一点(而不是使用 tf.while_loop)?

更新 :我认为如下, tf.sets.set_intersection 可能有用。
import tensorflow as tf
a = tf.constant([[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]])
b = tf.constant([[1,2,8], [0,0,6], [11,12,13]])
res = tf.sets.set_intersection(a, b)
res2 = tf.sparse_tensor_to_dense(
res, default_value=-1)

with tf.Session() as sess:
print(sess.run(res2))
[[ 1 2 -1]
[ 6 -1 -1]
[11 12 13]]

最佳答案

您可以通过减去 b 的每个元素来实现与 a 的所有其他元素,然后找到零的索引:

find_match =tf.reduce_prod(tf.transpose(a)[...,None]- tf.abs(b[None,...]), 0)

find_idx = tf.equal(find_match,tf.zeros_like(find_match))

with tf.Session() as sess:
print(sess.run(find_idx))

#[[ True True False]
# [False False True]
# [ True True True]]

关于tensorflow - 检查 Tensorflow(批处理版本)中张量列表中存在的值的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com