컴퓨팅의 거리 이미지 포함하여 그룹의 이미지 포함

0

질문

는 방법을 제대로 얻는 거리의 이미지를 삽입에 대한 목록/그룹의 다른 이미지 포함?

나는 pretrained 모델을 사용하여 추출물 포함에서 이미지,그리고 싶은 거리를 얻을의 이미지에 대해 몇 가지 다른 이미지가 즉

Embedding (1028,) against Embedding (5, 1028)

내가 하려고 하는 유사성 이미지 실험 어디에 사용 코사인 유사성에서 메트릭 Tensorflow 계산 사이의 거리를 포함하며,그것은에서 잘 작동합 a1-to-1,즉 계산

Embedding_1 = (1028,)
Embedding_2 = (1028,)
metrics.CosineSimilarity(Embedding_1, Embedding_2)

그러나 나는 방법을 알아낼 수 없습니다 그것을 하에 1:N 거리를 계산.

Embedding_1 = (1028,)
Embedding_Group = [(1028,),(1028,),(1028,),(1028,),(1028,)]
1

최고의 응답

1

그것을 할 수 있으로 방송. 반복 이미지 및 컴퓨팅의 거리에 대한 각 개인 한 쌍은 나쁜 생각이 이 경우에는 이 되지 않습니다 병렬화(지 않는 한 당신이 그것을 어떻게 자).

import tensorflow as tf

embedding = tf.constant([1., 1.]) # your shape here is (1028,) instead of (2,)
embedding_group = tf.constant([[1., 1.], [1., 2.], [0., 1.]]) # your shape here is (5, 1028) instead of (3, 2)
norm_embedding = tf.nn.l2_normalize(embedding[None, ...], axis=-1)
norm_embedding_group = tf.nn.l2_normalize(embedding_group, axis=-1)
similarity = tf.reduce_sum(norm_embedding * norm_embedding_group, axis=-1) # cosine similarity of same shape as number of samples

print(norm_embedding.numpy())
print(norm_embedding_group.numpy())
print(similarity.numpy())
# [[0.7071067 0.7071067]]
# [[0.7071067  0.7071067 ]
#  [0.44721356 0.8944271 ]
#  [0.         1.        ]]
# [0.9999998  0.94868314 0.7071067 ]
2021-11-22 13:22:59

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................