मौजूदा टेंसर से 'सूचकांक' के अनुसार विरल 'अपडेट' घटाता है।
यह ऑपरेशन पारित `टेंसर` से विरल `अपडेट` को घटाकर एक नया टेंसर बनाता है। यह ऑपरेशन काफी हद तक `tf.scatter_nd_sub` से मिलता-जुलता है, सिवाय इसके कि अपडेट मौजूदा टेंसर से घटाए जाते हैं (वैरिएबल के विपरीत)। यदि मौजूदा टेंसर की मेमोरी का पुन: उपयोग नहीं किया जा सकता है, तो एक कॉपी बनाई और अपडेट की जाती है।
`सूचकांक` एक पूर्णांक टेंसर है जिसमें आकार `आकार` के एक नए टेंसर में सूचकांक होते हैं। `सूचकांक` का अंतिम आयाम `आकार` के अधिकतम रैंक पर हो सकता है:
index.shape[-1] <= आकार.रैंक
'सूचकांक' का अंतिम आयाम तत्वों में सूचकांक से मेल खाता है (यदि 'सूचकांक.आकार[-1] = आकार.रैंक') या स्लाइस (यदि 'सूचकांक.आकार[-1] <आकार.रैंक') आयाम 'सूचकांक' के साथ .आकार [-1] `आकार` का। `अपडेट` आकार के साथ एक टेंसर है
index.shape[:-1] + Shape[indices.shape[-1]:]
Tensor_scatter_sub का सबसे सरल रूप इंडेक्स द्वारा अलग-अलग तत्वों को टेंसर से घटाना है। उदाहरण के लिए, मान लें कि हम रैंक -1 टेंसर में 8 तत्वों के साथ 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_sub(tensor, indices, updates)
print(updated)
जिसके परिणामस्वरूप टेन्सर इस प्रकार दिखाई देगा:[1, -10, 1, -9, -8, 1, 1, -11]
हम एक ही बार में उच्च रैंक टेंसर के पूरे स्लाइस भी डाल सकते हैं। उदाहरण के लिए, यदि हम रैंक -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_sub(tensor, indices, updates)
print(updated)
परिणामस्वरूप टेन्सर इस प्रकार दिखाई देगा:[[[-4, -4, -4, -4], [-5, -5, -5, -5], [-6, -6, -6, -6], [-7, -7 , -7, -7]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] , [[-4, -4, -4, -4], [-5, -5, -5, -5], [-6, -6, -6, -6], [-7, -7 , -7, -7]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] ]
ध्यान दें कि सीपीयू पर, यदि एक आउट ऑफ बाउंड इंडेक्स पाया जाता है, तो एक त्रुटि वापस आ जाती है। GPU पर, यदि कोई बाध्य अनुक्रमणिका पाई जाती है, तो अनुक्रमणिका को अनदेखा कर दिया जाता है।
सार्वजनिक तरीके
आउटपुट <टी> | asOutput () टेंसर का प्रतीकात्मक हैंडल लौटाता है। |
स्थिर <टी, यू फैली संख्या> TensorScatterSub <टी> | |
आउटपुट <टी> | उत्पादन () एक नया टेंसर टेंसर से कॉपी किया गया और अपडेट को इंडेक्स के अनुसार घटाया गया। |
विरासत में मिली विधियां
सार्वजनिक तरीके
सार्वजनिक आउटपुट <टी> asOutput ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
TensorFlow संचालन के लिए इनपुट एक अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।
सार्वजनिक स्थिर TensorScatterSub <टी> बनाने ( स्कोप गुंजाइश, ओपेरैंड <टी> टेन्सर, ओपेरैंड <u> सूचकांक, ओपेरैंड <टी> अपडेट)
एक नया TensorScatterSub ऑपरेशन रैपिंग क्लास बनाने के लिए फ़ैक्टरी विधि।
मापदंडों
दायरा | वर्तमान दायरा |
---|---|
टेन्सर | कॉपी/अपडेट करने के लिए टेंसर। |
सूचकांक | सूचकांक टेंसर। |
अपडेट | आउटपुट में बिखराव के लिए अद्यतन। |
रिटर्न
- TensorScatterSub का एक नया उदाहरण
सार्वजनिक आउटपुट <टी> निर्गम ()
एक नया टेंसर टेंसर से कॉपी किया गया और अपडेट को इंडेक्स के अनुसार घटाया गया।