列表中每个张量之间的Tensorflow余弦相似度

我有2个带有张量的列表(数组),想计算两个列表之间张量的余弦相似度。并获得具有相似性的输出列表(张量)。

例如:

a: [ 
[1,2,3],[4,5,6],[7,8,9] 
]   

b: [ 
[1,4,9] 
]

输出:

out: [
1.0,0.84,0.78
]

对于在tensorflow中执行此操作的任何帮助将不胜感激。

现在我已经完成了:

a = tf.placeholder(tf.float32,shape=[None,name="input_placeholder_a")
b = tf.placeholder(tf.float32,name="input_placeholder_b")
normalize_a = tf.nn.l2_normalize(a,dim=1)
normalize_b = tf.nn.l2_normalize(b,dim=1)
cos_similarity=tf.matmul(normalize_a,normalize_b,transpose_b=True)

sess=tf.Session()
cos_sim=sess.run(cos_similarity,feed_dict={
  a: np.array([[1,6]]),b: np.array([[1,[8,7,9]]),})
print(cos_sim)

liuleihua 回答:列表中每个张量之间的Tensorflow余弦相似度

a = tf.placeholder(tf.float32,shape=[None,3],name="input_placeholder_a")
b = tf.placeholder(tf.float32,name="input_placeholder_b")
numerator = tf.reduce_sum(tf.multiply(a,b),axis=1)
denominator = tf.multiply(tf.norm(a,axis=1),tf.norm(b,axis=1))
cos_similarity = numerator/denominator

sess=tf.Session()
cos_sim=sess.run(cos_similarity,feed_dict={
  a: np.array([[1,2,[4,5,6]]),b: np.array([[1,[8,7,9]]),})
print(cos_sim)
本文链接:https://www.f2er.com/3136463.html

大家都在问