`इनपुट` से एक स्ट्राइड स्लाइस लौटाएँ।
ध्यान दें, अधिकांश पायथन उपयोगकर्ता सीधे इस ऑप के बजाय Python Tensor.__getitem__
या Variable.__getitem__
उपयोग करना चाहेंगे।
इस ऑप का लक्ष्य `n` आयामी `इनपुट` टेंसर से तत्वों के सबसेट के साथ एक नया टेंसर तैयार करना है। इस फ़ंक्शन के तर्कों में एन्कोड किए गए `m` विरल श्रेणी विनिर्देशों के अनुक्रम का उपयोग करके सबसेट चुना जाता है। ध्यान दें, कुछ मामलों में `m` `n` के बराबर हो सकता है, लेकिन ऐसा होना ज़रूरी नहीं है। प्रत्येक श्रेणी विशिष्टता प्रविष्टि निम्नलिखित में से एक हो सकती है:
- एक दीर्घवृत्त (...). एलिप्स का उपयोग पूर्ण-आयाम चयन के शून्य या अधिक आयामों को इंगित करने के लिए किया जाता है और `ellipsis_mask` का उपयोग करके उत्पादित किया जाता है। उदाहरण के लिए, `foo[...]` पहचान टुकड़ा है।
- एक नई धुरी. इसका उपयोग एक नया आकार=1 आयाम सम्मिलित करने के लिए किया जाता है और इसे `new_axis_mask` का उपयोग करके निर्मित किया जाता है। उदाहरण के लिए, `foo[:, ...]` जहां `foo` आकार `(3, 4)` है, एक `(1, 3, 4)` टेंसर उत्पन्न करता है।
- एक श्रेणी `शुरू: अंत: आगे बढ़ना`। इसका उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि किसी दिए गए आयाम से कितना चुनना है। `स्ट्राइड` कोई भी पूर्णांक हो सकता है लेकिन 0. `शुरू` एक पूर्णांक है जो चयन करने के लिए पहले मान के सूचकांक का प्रतिनिधित्व करता है जबकि `अंत` चयन करने के लिए अंतिम मान के सूचकांक का प्रतिनिधित्व करता है। प्रत्येक आयाम में चयनित मानों की संख्या `अंत - प्रारंभ` है यदि `स्ट्राइड> 0` और `शुरू - अंत` यदि `स्ट्राइड < 0` है। `शुरू` और `अंत` नकारात्मक हो सकते हैं जहां `-1` अंतिम तत्व है, `-2` अंतिम से दूसरा तत्व है। `begin_mask` नियंत्रित करता है कि क्या स्पष्ट रूप से दिए गए `begin` को `0` के अंतर्निहित प्रभावी मान से प्रतिस्थापित किया जाए यदि `stride > 0` और `-1` यदि `stride < 0` है। `end_mask` अनुरूप है लेकिन सबसे बड़ा खुला अंतराल बनाने के लिए आवश्यक संख्या उत्पन्न करता है। उदाहरण के लिए, एक आकार `(3,)` टेंसर `foo[:]` दिया गया है, प्रभावी `शुरू` और `अंत` `0` और `3` हैं। यह न मानें कि यह `foo[0:-1]` के बराबर है, जिसमें `0` और `2` का प्रभावी `शुरुआत` और `अंत` है। एक अन्य उदाहरण `foo[-2::-1]` है जो अंतिम दो (मूल क्रम तत्वों में) को हटाते हुए टेंसर के पहले आयाम को उलट देता है। उदाहरण के लिए `फू = [1,2,3,4]; foo[-2::-1]` `[4,3]` है।
- एक एकल सूचकांक. इसका उपयोग केवल उन तत्वों को रखने के लिए किया जाता है जिनमें एक दिया गया सूचकांक होता है। उदाहरण के लिए (`foo[2, :]` एक आकार `(5,6)` टेंसर पर एक आकार `(6,)` टेंसर उत्पन्न होता है। इसे `begin` और `end` और `shnk_axis_mask` में एन्कोड किया गया है।
प्रत्येक वैचारिक श्रेणी विनिर्देश ऑप के तर्क में एन्कोड किया गया है। इस एन्कोडिंग को एक गैर-तुच्छ उदाहरण पर विचार करके सबसे अच्छी तरह से समझा जा सकता है। विशेष रूप से, `foo[1, 2:4, None, ..., :-3:-1, :]` को इस प्रकार एन्कोड किया जाएगा
begin = [1, 2, x, x, 0, x] # x denotes don't care (usually 0)
end = [2, 4, x, x, -3, x]
strides = [1, 1, x, x, -1, 1]
begin_mask = 1<<4 | 1<<5 = 48
end_mask = 1<<5 = 32
ellipsis_mask = 1<<3 = 8
new_axis_mask = 1<<2 = 4
shrink_axis_mask = 1<<0 = 1
1. उदाहरण स्लाइस में पहला तर्क `प्रारंभ = 1` और `अंत = प्रारंभ + 1 = 2` में बदल गया है। मूल विशिष्टता `2:4` को स्पष्ट करने के लिए हम `shrank_axis_mask` में उचित बिट भी सेट करते हैं।
2. `2:4` शुरू करने, समाप्त करने और आगे बढ़ने में 2, 4, 1 का योगदान देता है। सभी मास्क में शून्य बिट योगदान है।
3. कोई नहीं tf.newaxis
का पर्यायवाची है। इसका मतलब है कि अंतिम आकार में आकार 1 आयाम का एक आयाम डालें। डमी मानों को आरंभ, अंत और प्रगति में योगदान दिया जाता है, जबकि new_axis_mask बिट सेट किया जाता है।
4. `...` इनपुट आकार के प्रत्येक आयाम के लिए एक स्लाइस को पूरी तरह से निर्दिष्ट करने के लिए आवश्यकतानुसार कई आयामों से पूरी श्रृंखला लें।
5. `:-3:-1` नकारात्मक सूचकांकों का उपयोग दर्शाता है। एक नकारात्मक सूचकांक `i` एक आयाम से जुड़ा हुआ है जिसका आकार `s` है, इसे सकारात्मक सूचकांक `s + i` में बदल दिया जाता है। तो `-1` `s-1` बन जाता है (अर्थात अंतिम तत्व)। यह रूपांतरण आंतरिक रूप से किया जाता है इसलिए प्रारंभ, अंत और प्रगति x, -3, और -1 प्राप्त होती है। उचित शुरुआती_मास्क बिट को यह इंगित करने के लिए सेट किया गया है कि स्टार्ट रेंज पूरी रेंज है (x को अनदेखा करते हुए)।
6. `:` इंगित करता है कि संबंधित आयाम की संपूर्ण सामग्री चयनित है। यह `::` या `0::1` के बराबर है। आरंभ, अंत और प्रगति क्रमशः 0, 0 और 1 प्राप्त करते हैं। `begin_mask` और `end_mask` में उपयुक्त बिट्स भी सेट हैं।
आवश्यकताएँ : `0 != स्ट्राइड्स[i] for i in [0, m)` `ellipsis_mask दो की घात होनी चाहिए (केवल एक ellipsis)`
नेस्टेड क्लासेस
कक्षा | स्ट्राइडस्लाइस.विकल्प | StridedSlice के लिए वैकल्पिक विशेषताएँ |
सार्वजनिक तरीके
आउटपुट <T> | आउटपुट के रूप में () टेंसर का प्रतीकात्मक हैंडल लौटाता है। |
स्थिर स्ट्राइडस्लाइस.विकल्प | बिगिनमास्क (लंबा बिगिनमास्क) |
स्थिर <टी, यू संख्या बढ़ाता है> स्ट्राइडस्लाइस <टी> | |
स्थिर स्ट्राइडस्लाइस.विकल्प | इलिप्सिस मास्क (लंबा इलिप्सिस मास्क) |
स्थिर स्ट्राइडस्लाइस.विकल्प | एंडमास्क (लंबा एंडमास्क) |
स्थिर स्ट्राइडस्लाइस.विकल्प | न्यूएक्सिसमास्क (लंबा न्यूएक्सिसमास्क) |
आउटपुट <T> | आउटपुट () |
स्थिर स्ट्राइडस्लाइस.विकल्प | श्रिंकएक्सिसमास्क (लंबा सिकुड़नएक्सिसमास्क) |
विरासत में मिले तरीके
सार्वजनिक तरीके
सार्वजनिक आउटपुट <T> asOutput ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
TensorFlow संचालन के इनपुट किसी अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।
सार्वजनिक स्थैतिक स्ट्राइडस्लाइस.विकल्प प्रारंभमास्क (लंबा प्रारंभमास्क)
पैरामीटर
शुरुआतीमास्क | एक बिटमास्क जहां बिट आई 1 होने का अर्थ है आरंभ मूल्य को अनदेखा करना और इसके बजाय संभव सबसे बड़े अंतराल का उपयोग करना। रनटाइम शुरू होने पर [i] को `[0, n-1)` से बदल दिया जाएगा यदि `stride[i] > 0` या `[-1, n-1]` यदि `stride[i] < 0` |
---|
सार्वजनिक स्थैतिक स्ट्राइडस्लाइस <टी> बनाएं ( स्कोप स्कोप, ऑपरेंड <टी> इनपुट, ऑपरेंड <यू> शुरू, ऑपरेंड <यू> अंत, ऑपरेंड <यू> स्ट्राइड्स, विकल्प... विकल्प)
नए स्ट्राइडस्लाइस ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
पैरामीटर
दायरा | वर्तमान दायरा |
---|---|
शुरू | `begin[k]` `k`th श्रेणी विनिर्देश में ऑफसेट निर्दिष्ट करता है। यह जिस सटीक आयाम से मेल खाता है वह संदर्भ द्वारा निर्धारित किया जाएगा। सीमा से बाहर के मूल्यों को चुपचाप दबा दिया जाएगा। यदि `begin_mask` का `k` वां बिट तो `begin[k]` को नजरअंदाज कर दिया जाता है और इसके बजाय उचित आयाम की पूरी श्रृंखला का उपयोग किया जाता है। नकारात्मक मानों के कारण अनुक्रमण उच्चतम तत्व से शुरू होता है, उदाहरण के लिए यदि `foo==[1,2,3]` तो `foo[-1]==3`। |
अंत | `end[i]` `begin` की तरह है, इस अपवाद के साथ कि `end_mask` का उपयोग पूर्ण श्रेणियों को निर्धारित करने के लिए किया जाता है। |
प्रगति | `strides[i]` किसी दिए गए तत्व को निकालने के बाद `i`वें विनिर्देश में वृद्धि निर्दिष्ट करता है। नकारात्मक सूचकांक मूल क्रम को उलट देंगे। आउट या रेंज मान `[0,dim[i]) यदि स्लाइस[i]>0` या `[-1,dim[i]-1] यदि स्लाइस[i] < 0` पर क्लैंप किए गए हैं |
विकल्प | वैकल्पिक गुण मान रखता है |
रिटर्न
- स्ट्राइडस्लाइस का एक नया उदाहरण
सार्वजनिक स्थैतिक स्ट्राइडस्लाइस.ऑप्शंस इलिप्सिस मास्क (लंबा इलिप्सिस मास्क)
पैरामीटर
इलिप्सिसमास्क | एक बिटमास्क जहां बिट `i` 1 होने का मतलब है कि `i`वीं स्थिति वास्तव में एक दीर्घवृत्त है। अधिकतम एक बिट 1 हो सकता है। यदि `ellipsis_mask == 0`, तो `1 << (m+1)` का एक अंतर्निहित इलिप्सिस मास्क प्रदान किया जाता है। इसका मतलब है कि `foo[3:5] == foo[3:5, ...]`। एक इलिप्सिस प्रत्येक आयाम के लिए कटी हुई सीमा को पूरी तरह से निर्दिष्ट करने के लिए आवश्यक रूप से कई रेंज विनिर्देश बनाता है। उदाहरण के लिए 4-आयामी टेंसर `foo` के लिए स्लाइस `foo[2, ..., 5:8]` का तात्पर्य `foo[2, :, :, 5:8]` है। |
---|
सार्वजनिक स्थैतिक स्ट्राइडस्लाइस.ऑप्शंस एंडमास्क (लॉन्ग एंडमास्क)
पैरामीटर
अंतमास्क | `begin_mask` के समान |
---|
सार्वजनिक स्थैतिक स्ट्राइडस्लाइस.ऑप्शंस न्यूएक्सिसमास्क (लंबा न्यूएक्सिसमास्क)
पैरामीटर
न्यूएक्सिसमास्क | एक बिटमास्क जहां बिट `i` 1 होने का मतलब है `i`th विनिर्देशन एक नया आकार 1 आयाम बनाता है। उदाहरण के लिए `foo[:4, tf.newaxis, :2]` एक आकार `(4, 1, 2)` टेंसर उत्पन्न करेगा। |
---|
सार्वजनिक स्थैतिक स्ट्राइडस्लाइस.ऑप्शंस श्रिंकएक्सिसमास्क (लंबा श्रिंकएक्सिसमास्क)
पैरामीटर
श्रिंकएक्सिसमास्क | एक बिटमास्क जहां बिट `i` का तात्पर्य है कि `i`वें विनिर्देश को आयामीता को कम करना चाहिए। प्रारंभ और अंत में आयाम में आकार 1 का एक टुकड़ा होना चाहिए। उदाहरण के लिए, पायथन में कोई `foo[:, 3, :]` कर सकता है जिसके परिणामस्वरूप `shlink_axis_mask` 2 होगा। |
---|