У меня есть 2 списка (массива) с тензорами и я хочу вычислить косинусное сходство тензоров между двумя списками. И получить список вывода (тензор) со сходствами.
Например:
a: [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
b: [
[1, 2, 3],
[7, 5, 6],
[7, 4, 9]
]
Вывод:
out: [
1.0,
0.84,
0.78
]
Был бы благодарен за любую помощь относительно того, как выполнить это в tenorflow.
Пока я закончил на этом:
a = tf.placeholder(tf.float32, shape=[None,3], name="input_placeholder_a")
b = tf.placeholder(tf.float32, shape=[None,3], 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, 2, 3],
[4, 5, 6]]),
b: np.array([[1, 2, 3],
[8, 7, 9]]),
})
print(cos_sim)