कंप्यूटिंग की दूरी एक छवि embedding के एक समूह के खिलाफ छवि embeddings

0

सवाल

कैसे ठीक से करने के लिए दूरी प्राप्त की एक छवि embedding के खिलाफ एक सूची/समूह की एक और छवि embedding?

मैं एक pretrained मॉडल है कि मैं का उपयोग कर रहा हूँ निकालने के लिए embeddings से छवियों, और मैं प्राप्त करने के लिए दूरी की एक छवि के खिलाफ कुछ अन्य छवियों यानी

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

मैं कोशिश कर रहा हूँ करने के लिए एक छवि समानता प्रयोग जहां आईएम का उपयोग कर कोज्या समानता मीट्रिक से ... बदलेगी देश की गणना करने के लिए दूरी के बीच दो embedding, और यह काम करता है पर अच्छी तरह से एक 1-के लिए-1 अभिकलन अर्थात

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

लेकिन मैं नहीं कर सकते हैं बाहर आंकड़ा कैसे यह करने के लिए पर एक 1-के लिए-एन दूरी की गणना.

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

सबसे अच्छा जवाब

1

यह किया जा सकता है के साथ प्रसारण. पर Iterating, छवियों और कंप्यूटिंग दूरी के लिए प्रत्येक व्यक्ति जोड़ी है बुरा विचार है, इस मामले में के बाद से यह नहीं होगा parallelized (जब तक आप जानते हैं कि कैसे यह करने के लिए अपने आप को).

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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में