टेंसरस्कैटरएड

सार्वजनिक अंतिम वर्ग TensorScatterAdd

`सूचकांक` के अनुसार मौजूदा टेंसर में विरल `अपडेट` जोड़ता है।

यह ऑपरेशन पास किए गए `टेंसर` में विरल `अपडेट` जोड़कर एक नया टेंसर बनाता है। यह ऑपरेशन `tf.scatter_nd_add` के समान है, सिवाय इसके कि अपडेट मौजूदा टेंसर पर जोड़े जाते हैं (वैरिएबल के विपरीत)। यदि मौजूदा टेंसर की मेमोरी का पुन: उपयोग नहीं किया जा सकता है, तो एक प्रतिलिपि बनाई और अद्यतन की जाती है।

`indices` एक पूर्णांक टेंसर है जिसमें सूचकांक `tensor.shape` आकार के एक नए टेंसर में समाहित होते हैं। `सूचकांकों` का अंतिम आयाम अधिकतम `tensor.shape` की रैंक हो सकता है:

सूचकांक.आकार[-1] <= टेंसर.आकार.रैंक

'सूचकांकों' का अंतिम आयाम तत्वों में सूचकांकों से मेल खाता है (यदि `indices.shape[-1] = Tensor.shape.rank`) या स्लाइस (यदि `indices.shape[-1] < Tensor.shape.rank`) `tensor.shape` के आयाम `indices.shape[-1]` के साथ। `अपडेट` आकार वाला एक टेंसर है

सूचकांक.आकार[:-1] + टेंसर.आकार[सूचकांक.आकार[-1]:]

Tensor_scatter_add का सबसे सरल रूप इंडेक्स द्वारा टेंसर में अलग-अलग तत्वों को जोड़ना है। उदाहरण के लिए, मान लें कि हम 8 तत्वों वाले रैंक-1 टेंसर में 4 तत्व जोड़ना चाहते हैं।

पायथन में, यह स्कैटर ऐड ऑपरेशन इस तरह दिखेगा:

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     tensor = tf.ones([8], dtype=tf.int32)
     updated = tf.tensor_scatter_nd_add(tensor, indices, updates)
     print(updated)
 
परिणामी टेंसर इस तरह दिखेगा:

[1, 12, 1, 11, 10, 1, 1, 13]

हम एक उच्च रैंक टेंसर के पूरे स्लाइस को एक साथ भी सम्मिलित कर सकते हैं। उदाहरण के लिए, यदि हम रैंक-3 टेंसर के पहले आयाम में नए मानों के दो मैट्रिक्स के साथ दो स्लाइस सम्मिलित करना चाहते हैं।

पायथन में, यह स्कैटर ऐड ऑपरेशन इस तरह दिखेगा:

indices = tf.constant([[0], [2]])
     updates = tf.constant([[[5, 5, 5, 5], [6, 6, 6, 6],
                             [7, 7, 7, 7], [8, 8, 8, 8]],
                            [[5, 5, 5, 5], [6, 6, 6, 6],
                             [7, 7, 7, 7], [8, 8, 8, 8]]])
     tensor = tf.ones([4, 4, 4],dtype=tf.int32)
     updated = tf.tensor_scatter_nd_add(tensor, indices, updates)
     print(updated)
 
परिणामी टेंसर इस तरह दिखेगा:

[[[6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8], [9, 9, 9, 9]], [[1, 1, 1 , 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[6, 6, 6, 6], [7, 7 , 7, 7], [8, 8, 8, 8], [9, 9, 9, 9]], [[1, 1, 1, 1], [1, 1, 1, 1], [1 , 1, 1, 1], [1, 1, 1, 1]]]

ध्यान दें कि सीपीयू पर, यदि कोई आउट ऑफ बाउंड इंडेक्स पाया जाता है, तो एक त्रुटि वापस आ जाती है। जीपीयू पर, यदि कोई आउट ऑफ बाउंड इंडेक्स पाया जाता है, तो इंडेक्स को नजरअंदाज कर दिया जाता है।

सार्वजनिक तरीके

आउटपुट <T>
आउटपुट के रूप में ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
स्थिर <T, U संख्या बढ़ाता है> TensorScatterAdd <T>
बनाएं ( स्कोप स्कोप, ऑपरेंड <टी> टेंसर, ऑपरेंड <यू> इंडेक्स, ऑपरेंड <टी> अपडेट)
एक नया TensorScatterAdd ऑपरेशन लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
आउटपुट <T>
आउटपुट ()
टेंसर से एक नया टेंसर कॉपी किया गया और सूचकांकों के अनुसार अपडेट जोड़े गए।

विरासत में मिली विधियाँ

सार्वजनिक तरीके

सार्वजनिक आउटपुट <T> asOutput ()

टेंसर का प्रतीकात्मक हैंडल लौटाता है।

TensorFlow संचालन के इनपुट किसी अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।

सार्वजनिक स्थैतिक TensorScatterAdd <T> बनाएं ( स्कोप स्कोप, ऑपरेंड <T> टेंसर, ऑपरेंड <U> इंडेक्स, ऑपरेंड <T> अपडेट)

एक नया TensorScatterAdd ऑपरेशन लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।

पैरामीटर
दायरा वर्तमान दायरा
टेन्सर कॉपी/अपडेट करने के लिए टेंसर।
सूचकांक सूचकांक टेंसर.
अपडेट आउटपुट में बिखरने के लिए अद्यतन।
रिटर्न
  • TensorScatterAdd का एक नया उदाहरण

सार्वजनिक आउटपुट <T> आउटपुट ()

टेंसर से एक नया टेंसर कॉपी किया गया और सूचकांकों के अनुसार अपडेट जोड़े गए।